重音敏感的 MySQL 搜索:综合指南
重音敏感可能会给 MySQL 查询带来挑战,特别是在搜索带有变音符号的字符时。本文探讨了 MySQL 中重音敏感查询的细微差别,并提供了实用的解决方案。
重音不敏感查询的问题
考虑 UTF-8 表中的两个条目:“阿巴德”和“阿巴德”。由于默认排序规则中不区分重音,搜索“abád”的查询也可能返回“abad”。
解决方案
1。列排序规则
要确保区分重音,请指定区分重音字符和非重音字符的排序规则。例如:
ALTER TABLE words MODIFY `word` VARCHAR(10) COLLATE utf8_bin;
2。二元运算符
搜索重音单词的精确匹配时,请使用二元运算符:
SELECT * FROM `words` WHERE BINARY `word` = 'abád';
3。 COLLATE 子句
在 MySQL 8.0 及更高版本中,COLLATE 子句允许您指定用于比较的特定排序规则:
SELECT * FROM `words` WHERE `word` = 'abád' COLLATE utf8mb4_bin;
4。特定于语言的排序规则
对于语言需要特定重音处理的情况,请考虑使用特定于语言的排序规则,例如 utf8_polish_ci 或 latin1_swedish_ci。
附加注释
通过实施这些解决方案,您可以在 MySQL 查询中实现所需的重音敏感度,确保重音字符的搜索结果准确。
以上是如何在 MySQL 中执行区分重音的搜索?的详细内容。更多信息请关注PHP中文网其他相关文章!