如何在mySQL中搜索已知范围内的值

时间:2009-11-13 20:44:10

标签: mysql syntax range

假设我有这样的查询:

SELECT * FROM table_name WHERE venue = "1" OR venue = "10"

那很好,工作正常。但是,假设我有50个场地号码列表。有没有一种简单的方法可以做到这一点,我不需要写出50个不同的OR?

谢谢!

5 个答案:

答案 0 :(得分:4)

您可以改为使用"IN"

SELECT * FROM table_name WHERE venue IN (1, 12, 23, ... 150)

答案 1 :(得分:1)

SELECT * FROM table_name WHERE venue IN ('1','10')

最佳答案是

SELECT * FROM table_name WHERE venue IN @myVar

其中@myVar是查询中的列表集,

答案 2 :(得分:0)

使用IN关键字:... WHERE venue IN (2, 3, 5, 7, 11, ...) ;

答案 3 :(得分:0)

...试

SELECT * FROM table_name WHERE venue in ('1', '10')

我知道它适用于Oracle。 “in”运算符可能是标准SQL的一部分?说不上。

编辑:将双引号更改为单引号。

答案 4 :(得分:0)

不确定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';

当然,如果您的号码列表不连续,BETWEEN将无济于事。