BETWEEN运算符在MySQL中运行错误

时间:2012-08-24 12:20:14

标签: mysql between

我的查询包含BETWEEN运算符,但显示错误的结果

我的查询 -

SELECT * FROM register WHERE height BETWEEN  '1' AND  '6'

它还向高度为10,12和16的用户显示错误。这个查询有什么问题?
我有另一个查询工作正常,但不是正确的使用方式,因为它使查询冗长

SELECT * FROM register WHERE height > 1 AND height < 12  

让我了解获取查询的正确方法,就好像添加了更多条件一样,查询很难理解和编码。

4 个答案:

答案 0 :(得分:3)

假设高度是整数,那么它不应该是

SELECT * FROM register WHERE height BETWEEN 1 AND 6

您不需要单引号

答案 1 :(得分:1)

如果:
 1.您不能或不想更改列类型
 2.该领域的字符只是数字

您可以将查询更改为:

SELECT * 
FROM register 
WHERE CONVERT(height, UNSIGNED INTEGER) BETWEEN 1 AND 6

请参阅this SQL fiddle上的示例。

答案 2 :(得分:0)

检查列“高度”的数据类型,它应该是int或float或double,如果是以上,请运行以下查询

SELECT * FROM register WHERE height BETWEEN 1 AND 6

答案 3 :(得分:0)

如果高度字段不是数字,则可以在进行比较之前对其进行转换。

SELECT * FROM register WHERE CONVERT(height, unsigned) BETWEEN 1 AND 6