2012-12-21 201 views
2

我已经记录了表格中的项目。这些项目是以字母和数字开头的记录组合。我无法让他们排序正确(按字母顺序,数字在上面)。以下是我用来调用表格的内容。无法按字母顺序对mysql表格行进行排序

SELECT * FROM `cog_name` ORDER BY `cog_name`.`name` ASC 

不应该工作吗?我收到了顶部数字的大部分条目,然后是下面的字母顺序记录。但大约一半的时候,它开始按照字母顺序“重新列出”另一组。

Example query result: 
SELECT * FROM `cog_name` ORDER BY `cog_name`.`name` ASC 
-------- 
name 
-------- 
1 car 
2 horse 
3 rocket 
apple 
banana 
carrot 
1 car 
2 horse 
3 rocket 
apple 
banana 
carrot 

与我的例子不同,条目都是唯一的名称。

+4

该字段开头的任何空格? –

+0

可能你有第一组字母条目前缀的空格,换行符或制表符? – joostschouten

+0

为了更清楚地了解发生了什么,您可以尝试运行'SELECT name,ORD(name)FROM cog_name ORDER BY name ASC'。 'ORD(name)'部分会给出'name'中第一个字符的字符代码,让你看看是否有任何领先的空白(正如Michael Berkowski所说的)或者其他任何奇怪的东西。 – ruakh

回答

0

可以使用TRIM功能:

SELECT TRIM(name) FROM `cog_name` ORDER BY TRIM(name) ASC 

这应该做到这一点!

相关问题