我的数据库包含带有特殊字符的名称,例如SigurRós
问题在于,如果您使用常规字符搜索名称,例如“Sigur Ros”,将不会返回任何结果。
处理此问题的最佳方法是什么?有没有我可以使用的工具,还是我必须用PHP手动查找和替换这些工具?
答案 0 :(得分:1)
在您的数据库中,如果您将包含此数据的列的排序规则设置为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)