mysql - 在 MySQL 中使用 BETWEEN 范围是否有无穷大或通配符?

标签 mysql

例如,我有一个程序接受 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/

相关文章:

MYSQL 无重复行 - 具有多个父级的多对多层次结构

mysql - Eloquent Query 强制转换为 Float

mysql - 如何选择不在另一个表中的记录?

php mysql 时间预订

mysql - 在没有主键的MySQL中设置差异

php - 如何从mysql数据库中检索表名?

mysql - 这个简单的 MySQL SELECT 查询有什么问题?

mysql 转换为间隔

Mysql 查询计数或家长记录

mysql - 在 SQL 中有效地加入间隔范围