Понимание mysql charset и сопоставления - PullRequest
2 голосов
/ 18 января 2012

У меня есть таблица InnoDB в mysql с utf8 кодировкой и utf8_general_ci сопоставлением. После следующего запроса:

SELECT * FROM `ticket`
WHERE `text` LIKE '%abc%'
ORDER BY `created_date` DESC

возвращает мне строки, содержащие "äbc", а также содержащие "abc". Я пытался использовать utf8_bin сопоставление на столе, но это не помогло.

Что я пропустил?

P.S. Я думал, что проблема в кодировке соединений PHP, но после выполнения запроса в Sequel Pro я получил тот же результат.

1 Ответ

3 голосов
/ 18 января 2012

для сопоставления в Юникоде (как utf8_general_ci, так и utf8_unicode_ci) у вас есть такой вид равенства:

Ä = A
Ö = O
Ü = U

это не ошибка.

прочитайте это http://dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html иэто http://dev.mysql.com/doc/refman/5.0/en/charset-collation-effect.html

...