我有一个列的列表[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