2012-12-24 50 views
7

我在MySQL的db表中有一些國家的不同語言名,表中可以支持utf8。 但SELECT * FROM countries ORDER BY 'name_czech'總是排序英文alphabatically訂購在外語字段中使用ORDER BY子句

enter image description here

enter image description here

我的問題是,我們怎麼能排序外語場記錄?

+0

你可以給樣品記錄嗎? –

+0

確定等一下請 –

+0

也許你想用反引號代替單引號。 'ORDER BY name_czech'怎麼樣? –

回答

1

也許你想使用反引號,而不是單引號

SELECT * 
FROM countries 
ORDER BY `name_czech` 
+1

或只是刪除它。 –

0

得到了它,我只是在字段名稱中刪除單個QUOT

select * from countries order by name_czech 

感謝所有的朋友。

1

我不完全理解這個問題,或者你想達到什麼目的,但是我可以通過你提供的示例來猜測,除了默認的mysql排序之外沒有任何排序。爲了能夠按列排序,您希望使用反引號(`)字符。在某些情況下,「字符也是允許的,雖然我懷疑這是你所需要的。」

回到排序問題,如果列的名字意味着任何東西,那麼我想這些是捷克的名字。如果是utf8捷克語歸類,則按照該排序進行排序;如果不是,則可以使用ORDER BY name_czech COLLATE utf8_czech_ci來強制進行排序,而不是您爲該列定義的排序如果列是utf8,你應該沒有更多的意外

基本上,這返回到更改列的排序規則,如果不是適當的(通過alter table),或者在查詢過程中更改排序規則