我有一個列的列表[VARCHAR]排序mysql varchar列與在哪裏條件
當我記錄的點大於80和點按降序排列。我得到的只有數從99其實我有個大於100
嘗試添加+ 0,但升序排列奇怪的結果的選項, 從點得到的數據與8
我有一個列的列表[VARCHAR]排序mysql varchar列與在哪裏條件
當我記錄的點大於80和點按降序排列。我得到的只有數從99其實我有個大於100
嘗試添加+ 0,但升序排列奇怪的結果的選項, 從點得到的數據與8
爲什麼不只是使用讓你的points
一個Integer?
SELECT * FROM
表WHERE
點> 80 ORDER BY
點DESC
由於該列是用於排序和where子句完成字母順序,不數值varchar
比較。這意味着'80'>'100',因爲'8'<'1'。您需要將此列轉換爲integer
。使用CAST(points AS INTEGER)
而不僅僅是點。
問題是我有點像100.5 – 2012-03-22 14:38:49
你可以使它成爲一個十進制(10,2),其中10是多麼希望你的浮點數的左邊部分,2是正確的寬度。 – Josh 2012-03-22 14:40:07
但點的數量不能預測 – 2012-03-22 14:55:24