例如,我有一个程序接受 MySQL 查询的输入范围为 1 到 100。用户可以从网页中选择一个范围,以使查询介于 100 和(无论无穷大)之间。除非必须,否则我不想仅为无限选择更改 MySQL 查询。是否有介于 100 和 * 之间的数字?如果是这样,语法是什么?谢谢!
最佳答案
不可以,不能在 BETWEEN 子句中使用通配符。但是您可以使用类型的最小/最大可能值,这将达到相同的效果。
例如,如果您有一个类型为 BIGINT
的列(签名)那么你可以使用9223372036854775807
作为上限,因为这是该数据类型可能的最大值。
WHERE x BETWEEN 100 AND 9223372036854775807
列出了整数值的限制 here .
另一个明显的解决方案是使用 >=
或 <=
而不是 BETWEEN
当其中一个末端是无限的。但正如您所说,这需要更改查询。
WHERE x >= 100
还有一些方法可以避免更改查询,方法是使用更复杂的查询并在您表示无限制时提供 NULL。
WHERE (x >= @lowerbound OR @lowerbound IS NULL)
AND (x <= @upperbound OR @upperbound IS NULL)
关于mysql - 在 MySQL 中使用 BETWEEN 范围是否有无穷大或通配符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12767702/