相關問題:mysql select distinct letters, including extended latin charactersMySQL的UTF-8怪異文字的問題 - 排序,刪除
沒有人打擾關於最後一個問題回答,所以我創建一個新的問題。
使用此表中的數據:http://pastebin.com/cH2DUzf3
,並在其上執行以下查詢:
SELECT DISTINCT BINARY `letter` FROM `texts` ORDER BY `letter` ASC
得到近乎完美的效果,但有一個例外:信ū
是u
之前。任何人都可以解釋嗎?邏輯上,字母u
是ū
的基本版本,訂單應爲u, ū
。爲什麼不是這樣?所有其他字母的順序都是正確的。
問題二 - 執行上表下面的語句:
DELETE FROM `texts` WHERE `letter` = 'ū'
也將刪除所有文字,其中letter
是u
。爲什麼?
同樣的問題與拉脫維亞字母查詢數據:
SELECT * FROM `texts` WHERE `letter` = 'ā'
返回結果,其中letter
是a
,不ā
。
編輯:好的,最後兩個問題也可以通過在letter
之前加BINARY
來解決。
什麼是上面提到的兩個字符的字符代碼? –
我不知道。我在哪裏可以檢查? – jurchiks
哪個** unicode規範化表單**是你的數據?字段'letter'設置了什麼排序和字符集? – Deduplicator