개발자
안녕하세요. 기술 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행복나눔재단 곧장기부 PM • 2023년 11월 13일
오오 감사합니다 !! 내일 출근하면 바로 해볼게요 !!!!!! ✨✨✨
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 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 엔진의 버전 정보 등 추가정보와 함께 상세한 문의를 부탁드리겠습니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!