2012-03-22 53 views
0

我有一個列的列表[VARCHAR]排序mysql varchar列與在哪裏條件

當我記錄的點大於80和點按降序排列。我得到的只有數從99其實我有個大於100

嘗試添加+ 0,但升序排列奇怪的結果的選項, 從點得到的數據與8

回答

0

爲什麼不只是使用讓你的points一個Integer

SELECT * FROMWHERE> 80 ORDER BYDESC

+0

問題是我有點像100.5 – 2012-03-22 14:38:49

+1

你可以使它成爲一個十進制(10,2),其中10是多麼希望你的浮點數的左邊部分,2是正確的寬度。 – Josh 2012-03-22 14:40:07

+0

但點的數量不能預測 – 2012-03-22 14:55:24

3

由於該列是用於排序和where子句完成字母順序,不數值varchar比較。這意味着'80'>'100',因爲'8'<'1'。您需要將此列轉換爲integer。使用CAST(points AS INTEGER)而不僅僅是點。