我在MySQL db表中有一些不同语言的国家名称,表可以支持utf8。
但是SELECT * FROM countries ORDER BY 'name_czech'
始终按字母顺序排序英文
我的问题是我们如何按外语字段对记录进行排序?
答案 0 :(得分:1)
也许你想使用反引号而不是单引号
SELECT *
FROM countries
ORDER BY `name_czech`
答案 1 :(得分:1)
我不完全理解这个问题,或者你想要实现的目标,但我可以通过您提供的样本来猜测,除了默认的mysql排序之外没有任何排序。为了能够按列排序,您需要使用反引号(`)字符。在某些情况下,“角色也是允许的,虽然我怀疑这是你需要的。
回到排序问题,如果列的名称意味着什么,那么我猜这些是捷克语中的名字。这个列的排序规则很重要。如果是utf8捷克整理,那么将根据该分类进行分类。如果没有,您可以使用ORDER BY name_czech COLLATE utf8_czech_ci
强制执行除为您为列定义的排序之外的排序规则,这将对相应排序规则应用排序。如果列是utf8,你应该没有更多的惊喜。
基本上,如果不是合适的列(通过alter table),则会返回更改列的排序规则,或者在查询期间更改排序规则。
答案 2 :(得分:0)
得到它我只删除字段名称上的单引号
select * from countries order by name_czech
感谢所有朋友。