如何在类似搜索中区分s和ş

时间:2017-12-25 15:38:04

标签: mysql

我在mysql的表中有一个varchar列。当我对此列进行搜索时,如果我搜索'%asd%',则会出现包含'aşd'的记录。有办法防止这种情况吗?

我已经尝试了几乎所有可能的整理,它的行为相同。通常我使用utf8mb4_unicode_ci。

1 个答案:

答案 0 :(得分:1)

您可以将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 Clause中,如

SELECT * FROM YOUR_TABLE WHERE VARFIELD like 'asd' COLLATE 'utf8_bin';