2014-01-05 53 views
-1

我與MySQL的排序,所以如果有一個人能幫助我解決這個我會 太高興了之前我不明白這問題都mysql的不正確的排序值

weird info

enter image description here

+0

由於列的類型是varchar,因此它使用的字母排序與數字排序完全不同。其他人可能會告訴你如何將它排序爲數字,或者可以將列分成兩部分:一個數字和一個後綴(T,W)部分。在這種情況下,你甚至可以使後綴成爲一個枚舉。 – Njol

回答

2

嘗試這樣做:

ORDER BY (best_feralhog + 0.0) 

它將排序數字,但它會忽略後綴字母。

+0

yeahoo ...我的headeck不見了,謝謝大家的幫助解決方案是 ORDER BY sum + 0.0 DESC LIMIT – user3162273

+0

歡迎來到堆棧溢出。請考慮點擊複選框以接受幫助您的最佳答案/正確答案。這可以讓你的問題幫助其他用戶。 –

1

這些都是排序的。

它們是varchar(10)。它們使用字符串比較進行排序。字符串「1000」小於字符串「999」,因爲第一個字符串「1」的第一個字符小於第二個字符串「9」的第一個字符。

如果這些是數字,則應將它們存儲在數據庫中。考慮使用小數類型。

如果您確實需要存儲爲varchar,則需要在排序前將值轉換(轉換)爲十進制值。