如果范围超过9999,则MySQL between
不起作用。
字段类型为varchar。
如果范围低于9999,它可以正常工作。
下面列出的查询:
SELECT `restaurant_details`.*
from restaurant_details
Where `restaurant_details`.`value` BETWEEN '8001' AND '12000'
答案 0 :(得分:3)
您可以将VARCHAR
投射到INTEGER ( UNSIGNED )
进行正确比较:
SELECT `restaurant_details`.*
from restaurant_details
Where CAST(`restaurant_details`.`value` AS UNSIGNED) BETWEEN 8001 AND 12000
编辑:忘记提及您还必须删除数字周围的引号(在这种情况下为8001和12000),以便MySQL
将它们解释为integers
答案 1 :(得分:1)
要弄清楚出了什么问题,请问自己一个问题,在8001' 8001' AND' 12000'?也就是说,什么表达式大于' 8'并且不到' 1'。
答案是没有字符大于8
且小于1
。如果数据中出现小数,您可能希望将字符串转换为整数或浮点数。