这是查询
SELECT * FROM TABLE WHERE id ='7883c2c8e6'AND value> '45'DESC
但由于某种原因,它返回一行,其中字段值的值为8.我已检查并且它没有前面或后面的字符。该字段当前设置为varchar。我想知道这是否会影响结果?
如果我改变>的方向到<这一行没有出现,但它应该是相反的方式呢?
答案 0 :(得分:2)
答案 1 :(得分:1)
The field is currently set as varchar
这就是问题;如果在文本字段上使用比较运算符,它将按字母顺序排序结果,而不是数字排序。
要解决此问题,请将字段设置为整数。
答案 2 :(得分:0)
SELECT * FROM TABLE
WHERE id = '7883c2c8e6' AND (value * 1) > 45
order by value DESC