假设我有这样的查询:
SELECT * FROM table_name WHERE venue = "1" OR venue = "10"
那很好,工作正常。但是,假设我有50个场地号码列表。有没有一种简单的方法可以做到这一点,我不需要写出50个不同的OR?
谢谢!
答案 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
将无济于事。