【发布时间】:2014-03-29 03:17:08
【问题描述】:
我的数据库具有带有特殊字符的名称,例如西格罗斯
问题是,如果您使用常规字符搜索名称,例如"Sigur Ros",不会返回任何结果。
处理此问题的最佳方法是什么?有没有我可以使用的工具,或者我必须用 PHP 手动查找和替换这些工具?
【问题讨论】:
-
原来数据库正在使用 html 字符 - 例如“西格·罗斯”
我的数据库具有带有特殊字符的名称,例如西格罗斯
问题是,如果您使用常规字符搜索名称,例如"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)
【讨论】: