2012-03-22 37 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)而不仅仅是点。