2012-12-21 200 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 

這應該做到這一點!

相關問題