2011-06-08 52 views
5

我的表排序規則是「utf8_general_ci」。如果我像運行一個查詢: SELECT * FROM mytable的WHERE MyField的= 「foo」 的MySQL DB選擇帶和不帶元音變音的記錄。例如:'.. where something =FÖÖ'

我得到的結果,其中: ... MyField的= 「foo」 的 ... MyField的= 「FOO」

是這是「utf8_general_ci」的默認值?我應該使用什麼排序規則來獲取記錄myfield =「FÖÖ」?

提前

+1

可能重複的[MySQL將AÅ作爲AAO處理?](http://stackoverflow.com/questions/2607130/mysql-treats-aao-as-aao) – 2011-06-08 13:24:48

回答

2

通過MySQL的Unicode字符集提供的歸類列表日Thnx可以在這裏找到:

http://dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html

如果你想全力以赴,並要求字符串是絕對一致爲了測試平等,可以使用utf8_bin(二進制整理)。否則,您可能需要對提供的不同排序規則進行一些實驗。

+0

thnx。 utf8_bin解決問題 – 2011-06-08 16:10:29

3
SELECT * FROM table WHERE some_field LIKE ('%ö%' COLLATE utf8_bin) 
+1

當提供解決問題的代碼時,最好也至少給出一個關於它是如何工作的簡短解釋,以便人們閱讀時不必精神上逐行解析它以理解差異。 – Fluffeh 2012-09-28 08:18:33

+1

答案來自撒旦先生,他不需要解釋。 – MilMike 2014-07-04 13:58:43

+0

錯誤1253(42000):COLLATION'utf8_bin'對於CHARACTER SET'utf8mb4'無效 – donquixote 2017-09-15 00:37:08

相關問題