如何在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中运行查询,那么您编写它的方式就可以了。