У меня есть столбец varchar в таблице в mysql. Когда я делаю подобный поиск в этом столбце, если я ищу "% asd%", появляются записи, содержащие "aşd". Есть ли способ предотвратить это?
Я пробовал с почти любым сопоставлением, он ведет себя одинаково. Обычно я использую utf8mb4_unicode_ci.
Вы можете установить COLLATION на UTF8_BIN
MariaDB [(none)]> SELECT
-> 'aşd' LIKE 'asd' COLLATE 'utf8_bin' AS BIN,
-> 'aşd' LIKE 'asd' COLLATE 'utf8_general_ci' AS CI;
+------+------+
| BIN | CI |
+------+------+
| 0 | 1 |
+------+------+
1 row in set (0.00 sec)
Вы также можете поместить это в свое предложение WHERE как
SELECT * FROM YOUR_TABLE WHERE VARFIELD like 'asd' COLLATE 'utf8_bin';
COLLATE
в запросе, mysql выдаётUnrecognized keyword. (near "COLLATE" at position 53) Unexpected token. (near "'utf8_bin'" at position 61)