MySQL 中不区分大小写的搜索
本文探讨了 MySQL 在具有 utf8_general_ci 编码和 MyISAM 存储引擎的表中使用 LIKE 运算符进行查询的问题导致搜索区分大小写。
要解决此问题,有两种推荐的解决方案:
1.使用二进制字符串:
通过将 BINARY 关键字附加到 LIKE 运算符,可以实现不区分大小写的搜索:
SELECT .... FROM .... WHERE `concatenated` LIKE BINARY '%SearchTerm%';
这种方法比其他方法表现更好,因为它强制使用二进制字符串比较,使其更有效率。
2.使用 COLLATE:
或者,COLLATE 关键字可用于指定特定的排序规则:
SELECT .... FROM .... WHERE `concatenated` like '%SearchTerm%' COLLATE utf8_bin;
通过使用 utf8_bin 排序规则,强制执行不区分大小写的比较。虽然此方法提供了更大的灵活性,但与二进制字符串方法相比,它可能会对性能产生轻微影响。
以上是为什么 MySQL 中使用 LIKE 运算符和 utf8_general_ci 编码进行不区分大小写搜索时区分大小写?的详细内容。更多信息请关注PHP中文网其他相关文章!