我的数据库包含带有特殊字符的名称,例如西古尔·罗斯
问题是,如果您搜索包含常规字符的名称,例如“Sigur Ros”,不会返回任何结果。
处理这个问题的最佳方法是什么?有没有我可以使用的工具,或者我必须手动查找并用 PHP 替换它们?
最佳答案
在数据库中,如果将包含此数据的列的排序规则设置为 utf8_unicode_ci,则排序和比较将忽略重音符号。
您可以更改表列定义以允许自动排序规则:
ALTER TABLE yourTable MODIFY lastName VARCHAR(30) COLLATE utf8_unicode_ci
(参见http://dev.mysql.com/doc/refman/5.0/en/charset-column.html)
或者,您可以在查询表时指定排序规则:
SELECT * from yourTable WHERE lastName COLLATE utf8_unicode_ci = 'ROS'
(参见http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html)
关于php - 处理 mysql 搜索中的特殊字符,例如西古尔·罗斯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22726548/