Mysql排序顺序很奇怪

时间:2009-05-20 17:38:42

标签: mysql utf-8 sql-order-by

SELECT events.title 
FROM events 
ORDER BY events.title DESC

除了我桌子末尾的几个活动之外,我得到了正确的排序。

标题表上的编码为utf8_general_ci。我试过重新输入标题,希望它使用一些我看不到的奇怪的俄文字符,但它仍然以错误的顺序出现。

2 个答案:

答案 0 :(得分:2)

只是一个疯狂的猜测,但也许你的一些标题在开头有一些空格。

如果这是您的问题,您可以使用

Order By TRIM(events.title) DESC 

但这会降低您的查询速度,因为如果您有标题,MySQL将无法使用标题索引。

答案 1 :(得分:0)

请你运行

SELECT HEX(CAST(title AS BINARY))
FROM   events
WHERE  id = @weird_record

并在此处发布输出?

<强>更新

似乎记录是纯ASCII,没有奇怪字符的前导空格,并且说Walters Brothers Rebellion

你能否对那些无序的背诵做同样的事情?

请选择一些应该在Walter Brothers之前但之后的记录,反之亦然,并发布相同查询的结果。