如何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
则使用不同的名称。
这里我提到查询:
低值 = 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
则使用不同的名称。