如何解决当有 unicode 字符用作搜索词时,MySQL LIKE 搜索不起作用
我在 MYSQL 中有一个表列,它是 VARCHAR(3000)
我正在做这样的 LIKE 搜索
SELECT * FROM employee where NAME LIKE N'%$search_term%'
search_term
也可以是任何字符和 unicode。
现在我有 3 条记录,分别有这样的描述。它们是英文和 Unicode 字符的混合。
1) 44T8aJeYzU헾⼁놓좟뇘눍㼉㺿䦘ꑷꜺ麂蕟Ỻ壟Ⴡ
2) RHuLKzk4KH헾⼁놓좟뇘눍㼉㺿䦘ꑷꜺ麂蕟Ỻ壟ჁacnT3PvSQy
3) 헾⼁놓좟뇘눍㼉㺿䦘ꑷꜺ麂蕟Ỻ壟ჁZanjmxznnP
我的搜索词是
헾⼁놓좟뇘눍㼉㺿䦘ꑷꜺ麂蕟ỻ壟ⴡ
我应该得到 3 条记录(如果我将这些值复制到该 search_term 的文本编辑器,我会得到 3 个匹配项) 但我得到了空记录。
列的排序规则为 utf8_general_ci
,MySQL 版本为 5.7.23
这是 MySQL LIKE Search 的限制吗?
解决方法
通过设置解决
--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
在 docker-compose.yml
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。