mysql utf8mb4_general_ci проблема - PullRequest
       1

mysql utf8mb4_general_ci проблема

0 голосов
/ 28 ноября 2018

У меня есть проблема с символами Юникода в таблице utf8mb4_general_ci

SELECT * FROM `t1` WHERE c1='musca' 

возвращает

musca
muşca
muşcă

Что я хотел бы знать, если это ошибка - звучит так;

и если это повлияет на поиск - может, или лучше сказать, должно;Я не могу сделать столбец уникальным индексом

Все, что я должен сделать, mysql рассмотрит a и ă и s и ş как разные сущности?(вероятно, a и â, t и ţ, а также i и î, но я не проверял).

Должен ли я хранить символы Юникода как âă ş ţ î? *

Iнужно будет получить точное совпадение с пользовательским вводом.

Отредактировано для добавления:

Ответ в комментариях: я должен сопоставить столбцы как utf8mb4_0900_as_cs как Мадхур Бхайя объяснил и продемонстрировал

1 Ответ

0 голосов
/ 29 ноября 2018

Вам нужно COLLATION utf8_romanian_ci (или utf8mb4_romanian_ci) для рассматриваемых столбцов таблицы.Это единственное сопоставление, которое обрабатывает эти 5 символов как отдельную «букву».

Ссылка: http://mysql.rjweb.org/utf8_collations.html

Это доступно в большинстве версий MySQL / MariaDB.Нет необходимости в utf8mb4_0900_as_cs, что подразумевает MySQL 8.0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...