如何使用MySQL用于更高的值到更低的值?

时间:2016-07-15 06:47:56

标签: mysql sql between

这里我提到了查询:

lowerValue = 3, upperValue = 6

SELECT * FROM SampleTable where tableDay BETWEEN 'lowerValue' AND 'upperValue';

此查询工作正常,但我需要在下面提供查询类型

lowerValue = 3, upperValue = 6

SELECT * FROM SampleTable where tableDay BETWEEN 'upperValue' AND 'lowerValue';

它作为空列表返回,因为这两个值都是动态的,我做错了什么?

2 个答案:

答案 0 :(得分:3)

作为quickfix,您可以使用GREATEST() / LEAST()比较函数:

SELECT *
FROM   SampleTable
WHERE  tableDay BETWEEN LEAST(upperValue, lowerValue) AND
                        GREATEST(upperValue, lowerValue);

但如果upperValue可能小于lowerValue,则使用不同的名称。

答案 1 :(得分:0)

你的第一个论点必须始终是较低的一个。

来自SQL的文档:

test_expression [ NOT ] BETWEEN begin_expression AND end_expression
如果test_expression的值大于或等于 begin_expression 的值且小于或等于该值,则

BETWEEN 返回 TRUE end_expression