Неправильный подсчет SQL по строке - PullRequest
1 голос
/ 15 июля 2011

ОК, поэтому я проверил, и, похоже, никто не задавал этот вопрос.

Итак, у меня есть два слова:

thiep cuoi
thiệp cưới

Проблема в том, что когда я СЧИТАЮ (), эти mysql объединят эти два как одно и то же. Например, это sql:

#lets assume these two words have an id of 1 and 2 and that the column name
#in the table is `word`

SELECT `word`, COUNT(`word`)
FROM table_name 
WHERE `id` IN(1,2)
GROUP BY `word`;

Вернет два слова как одну строку со счетчиком 2. Это не одно и то же слово через UTF-8, как я могу обойти это поведение в MySQL? Разве MySQL не группирует по UTF-8 и не конвертирует в ASCII? : /

1 Ответ

3 голосов
/ 15 июля 2011

MySQL использует сопоставление, установленное для столбца, для определения равенства букв в словах.В любом сопоставлении, указанном в этом столбце, эти буквы считаются равными для сравнения.MySQL не выполняет никаких преобразований и не выбрасывает какие-либо данные.

http://dev.mysql.com/doc/refman/5.5/en/charset-general.html

Возможно, вы используете что-то общее, например, latin1_general_ci или utf8_general_ci.Если вы хотите, чтобы эти буквы рассматривались как разные, то вы, вероятно, хотите двоичное сопоставление.Запустите запрос типа SHOW COLLATION LIKE 'utf8%', чтобы узнать, что доступно на вашем сервере.

...