使用where条件对mysql varchar列进行排序

时间:2012-03-22 14:35:12

标签: php mysql

我有一个带有列点[VARCHAR]

的表

当我使用大于80的点数记录并按降序排序时。我只得到99的数字。实际上我得分大于100.

尝试按升序添加+0但奇怪的结果, 从8点

获取数据

2 个答案:

答案 0 :(得分:3)

由于此列为varchar进行排序比较,其中子句以按字母顺序完成,而不是数字。这意味着'80'> '100'因为'8'< '1'。您需要将此列转换为integer。使用CAST(points AS INTEGER)代替点。

答案 1 :(得分:0)

为什么不使用points Integer

SELECT * FROMWHERE> 80 ORDER BYDESC