如何在mySQL中搜索已知范围内的值
假设我有这样一个问题:如何在mySQL中搜索已知范围内的值,mysql,syntax,range,Mysql,Syntax,Range,假设我有这样一个问题: SELECT * FROM table_name WHERE venue = "1" OR venue = "10" 太好了,很好用。但假设我有一个50个场馆编号的列表。有没有一个简单的方法可以做到这一点,我不必写50个不同的ORs 谢谢 您可以改为使用: 您可以改为使用: 使用中的关键字:。。。地点在(2、3、5、7、11,…)使用中的关键字:。。。地点在(2、3、5、7、11,…) 最好的答案是 SELECT * FROM table_name WHERE venu
SELECT * FROM table_name WHERE venue = "1" OR venue = "10"
太好了,很好用。但假设我有一个50个场馆编号的列表。有没有一个简单的方法可以做到这一点,我不必写50个不同的ORs
谢谢 您可以改为使用:
您可以改为使用:
使用
中的关键字:。。。地点在(2、3、5、7、11,…)代码>使用中的关键字:。。。地点在(2、3、5、7、11,…)代码>
最好的答案是
SELECT * FROM table_name WHERE venue IN @myVar
其中@myVar是查询中设置的列表
最好的答案是
SELECT * FROM table_name WHERE venue IN @myVar
其中@myVar是查询中设置的列表,请尝试
SELECT * FROM table_name WHERE venue in ('1', '10')
我知道它在甲骨文中起作用。“in”运算符可能是标准SQL的一部分?不知道
编辑:将双引号更改为单引号。请尝试
SELECT * FROM table_name WHERE venue in ('1', '10')
我知道它在甲骨文中起作用。“in”运算符可能是标准SQL的一部分?不知道
编辑:将双引号更改为单引号。不确定MySQL是否支持此功能
使用BETWEEN
操作符:
SELECT *
FROM table
WHERE venue BETWEEN '1' and '50';
尽管在处理字符串时可能需要更加明确
数据类型:
SELECT *
FROM table
WHERE venue BETWEEN '1' and '9'
OR venue BETWEEN '10' and 50';
当然,如果您的数字列表是非连续的,
之间的将没有帮助。不确定MySQL是否支持此功能
使用BETWEEN
操作符:
SELECT *
FROM table
WHERE venue BETWEEN '1' and '50';
尽管在处理字符串时可能需要更加明确
数据类型:
SELECT *
FROM table
WHERE venue BETWEEN '1' and '9'
OR venue BETWEEN '10' and 50';
当然,如果您的数字列表是非连续的,
之间的将不会有帮助。您不能将参数设置为prepared语句变量。您当然可以将@myVar
附加到查询文本中,但我不确定为什么这会是“最好的”。好吧,如果这是从应用程序调用的,那么在查询中设置一个变量要比将其内联好,这就是我想说的。如果您在查询分析器或SQLYG中运行查询,那么您编写查询的方式就可以了。您不能将参数设置为prepared语句变量。您当然可以将@myVar
附加到查询文本中,但我不确定为什么这会是“最好的”。好吧,如果这是从应用程序调用的,那么在查询中设置一个变量要比将其内联好,这就是我想说的。如果您在QueryAnalyzer或SQLYog中运行查询,那么您编写它的方式就可以了。