我有一個MySQL數據庫,我需要在varchar列上執行搜索。所有數據都以latin1編碼。有時這些列中有西方重音字符(對於我來說幾乎總是法語)。使用默認排序規則(latin1_swedish_ci)一直適用於我。但是現在我遇到了一些含有元音變音的數據的問題。如果我搜索「nusserhof」,我希望mysql返回「nüsserhof」,但事實並非如此。更改排序規則latin1_german1_ci解決了簡單意義上的問題,比如這個查詢工作,返回包含單詞「nüsserhof」的所有行:mysql整理latin1_german1_ci不按順序通過
select * from mytable where mycolumn like '%nusserhof%' collate latin1_german1_ci;
但是,如果我一條一條地添加一個訂單就不再起作用。這不返回包含單詞「nüsserhof」任何行:
select * from mytable where mycolumn like '%nusserhof%' order by mycolumn collate latin1_german1_ci;
出人意料的是,我不能在這裏或者通過谷歌這個發現任何東西。這是預期的行爲?作爲解決方法,我只是放下訂單,然後在PHP中選擇後進行排序。但似乎我應該能夠得到它的工作。