如何MySQL Between used for Higher value to Lower value?

How to MySQL Between used for Higher value to Lower value?

这里我提到查询:

低值 = 3, 上限值 = 6

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

这个查询工作正常,但我需要下面给出的查询类型

低值 = 3, 上限值 = 6

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

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

您的第一个参数必须始终是较小的参数。

来自 SQL 的文档:

test_expression [ NOT ] BETWEEN begin_expression AND end_expression

BETWEEN returns TRUE 如果 test_expression 的值大于或等于begin_expression且小于等于end_expression.

的值

作为快速修复,您可以使用 GREATEST() / LEAST() 比较函数:

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

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