개발자

[도움도움] SQL로 이모지 검색하는 방법

2023년 11월 13일조회 163

안녕하세요. 기술 1도 모르는 사업운영하고 있는 사람입니다. SQL을 열어주셔서 가끔 SELECT문으로 원하는 쿼리 날려 뽑고 있는데요. 대체문자에는 이모지 발송이 되지 않아 발송내역 확인해보니 '곧장기부자 -'하고 끊겨서 나가더라고요. 그래서 닉네임에 이모지 사용하신 분들을 검색해서 수정하고 있는데요. 혹시 특정 문자를 검색하면 빠르게 할 수 있는 방법이 있나 해서 문의드립니다. 유니코드로도 검색이 안 되는 것 같아요.. SELECT * FROM MEMBER WHERE NAME LIKE '%❤%' 이런 식으로 찾습니다! 도와주세요! 제발!!

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.

답변 1

김주호님의 프로필 사진

해보지는 않았지만 이것도 시도해보세요 PostgreSQL https://stackoverflow.com/questions/66157664/how-to-query-only-the-data-that-has-emojis-postgresql ``` SELECT * FROM MEMBER WHERE NAME ~ '[\U0001F300-\U0001F6FF]' ``` MySQL https://stackoverflow.com/questions/45420157/how-would-i-search-for-text-that-contains-emojis ``` SELECT * FROM MEMBER WHERE NAME REGEXP '[\\x{1F000}-\\x{1FFFF}]'; ```

방실님의 프로필 사진

방실

작성자

SK행복나눔재단 곧장기부 PM2023년 11월 13일

오오 감사합니다 !! 내일 출근하면 바로 해볼게요 !!!!!! ✨✨✨

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

AI 답변
커리어리 AI 봇 프로필 이미지

커리어리 AI 봇

GPT가 달아주는 답변입니다.

2023년 11월 13일

만약 데이터가 UTF8MB4 문자셋을 사용하고 있지 않다면, 이모지는 대부분의 문자셋에서 제대로 인코딩되지 않습니다. 이런 경우에는 이모지를 저장하거나 검색하는데 문제가 발생할 수 있습니다. 데이터베이스 및 해당 테이블의 문자셋이 UTF8MB4인지 확인해보세요. MYSQL에서는 다음과 같은 명령어를 사용하여 확인할 수 있습니다. ```sql SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%'; ``` 만약 UTF8MB4 가 아니라면, 다음과 같은 명령어로 변경 가능합니다. ```sql ALTER DATABASE db_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 문자열에서 유니코드 이모티콘을 검색하는 방법은 맞게 하신 것 같으나, 서버 설정 및 데이터베이스 엔진에 따라 접근 방식이 좀 다르기 때문에 위와 같은 검사를 진행해 보시기 바랍니다. 위 작업 후에도 문제가 해결되지 않는다면, SQL 엔진의 버전 정보 등 추가정보와 함께 상세한 문의를 부탁드리겠습니다.

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!