2017-03-09 1 views
4

에 대해 여러 결과를 반환. 연결, 데이터베이스 및 열은 모두 utf8mb4 인코딩 및 데이터 정렬입니다.는 MySQL은 내가 하나의 이모티콘을 포함하는 VARCHAR 필드에 대한 이상한 MySQL의 행동을 관찰하고있어 하나의 이모티콘

idtitle 필드가있는 테이블이 categories입니다. , 및의 제목과 함께 세 개의 행이 있습니다. 내가 쿼리는 제목 행을 찾고 실행하면 MySQL이 같은 문자로 그들을 치료하는 것처럼

, 나는뿐만 아니라 하나의 그림 이모티콘으로 다른 모든 행을 얻을.

Query for credit card emoji returning all other single emoji rows

예상되는 동작은 행이 반환되는 것을해야한다.

답변

1

당신은 정렬 utf8mb4_unicode_520_ci이 필요합니다; 오래된 분류는 그림 이모티콘을 평등하게 취급합니다. 예상대로 utf8mb4_unicode_ci`는 이모티콘과 함께 작동, 반면에`

+0

유니 코드 9.0을 사용하는 MySQL 8.0을 보시려면 [_here_] (http://mysql.rjweb.org/utf8mb4_collations.html)의'utf8mb4_0900_ai_ci'를보십시오. –

2

정렬 두 문자는 같거나없는 것으로 간주되는지 여부를 판정한다. 만 정확한 바이너리 일치합니다

https://dev.mysql.com/doc/refman/5.7/en/charset-unicode-sets.html

, 당신은 이진 데이터 정렬을 지정할 수 있습니다. 여기 latin1에 대한

일부 구문 예제.

https://dev.mysql.com/doc/refman/5.7/en/case-sensitivity.html

+0

사실, 문제는 utf8mb4_general_ci' '로 보인다. – maknz

+1

@maknz - 테스트에 문제가 있습니다. 유니 코드가 적합하지 않습니다. 당신은 unicode_520 필요; 내 대답을 보라. –

+0

'utf8mb4_unicode_ci'를 사용하면 문제가 해결되며, 유니 코드 자체는 무엇을합니까? – maknz