MySQL DB выбирает записи с умлаутами и без них. например: '.. где-то = FÖÖ' - PullRequest
6 голосов
/ 08 июня 2011

Сортировка моей таблицы: "utf8_general_ci".Если я запускаю запрос вроде:

SELECT * FROM mytable WHERE myfield = "FÖÖ"

, я получаю результаты, где:

...  myfield = "FÖÖ"
...  myfield = "FOO"

это значение по умолчанию для "utf8_general_ci"?

Какой порядок сортировки следует использоватьчтобы получить только записи, где myfield = "FÖÖ"?

Ответы [ 3 ]

6 голосов
/ 01 августа 2012
SELECT * FROM table WHERE some_field LIKE ('%ö%'  COLLATE utf8_bin)
3 голосов
/ 08 июня 2011

Список параметров сортировки, предлагаемых MySQL для наборов символов Unicode, можно найти здесь:

http://dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html

Если вы хотите сделать все возможное и требовать, чтобы строки были абсолютно идентичный , чтобы проверить на равенство, вы можете использовать utf8_bin (двоичное сопоставление).В противном случае вам, возможно, придется поэкспериментировать с различными предлагаемыми параметрами сортировки.

0 голосов
/ 12 апреля 2015

Для скандинавских букв вы можете использовать пример utf8_swedish_ci fir.

Вот группировка символов для utf8_swedish_ci. Он показывает, какие символы интерпретируются как одинаковые. http://collation -charts.org / mysql60 / mysql604.utf8_swedish_ci.html

Вот список каталогов для других сопоставлений. Я не уверен, что используется utf8_general_ci, хотя. http://collation -charts.org / mysql60 /

...