我的數據庫中有特殊字符的名字,例如SigurRós在mysql搜索中處理特殊字符SigurRós
問題是,如果您搜索帶有常規字符的名稱,例如「西古爾羅斯」,沒有結果將被返回。
處理這個問題的最佳方法是什麼?有沒有我可以使用的工具,或者我必須用PHP手動查找和替換這些工具?
我的數據庫中有特殊字符的名字,例如SigurRós在mysql搜索中處理特殊字符SigurRós
問題是,如果您搜索帶有常規字符的名稱,例如「西古爾羅斯」,沒有結果將被返回。
處理這個問題的最佳方法是什麼?有沒有我可以使用的工具,或者我必須用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)
原來,數據庫使用的是html字符 - 例如, 「Sigur Ró s」 – fxfuture