我一直在使用mySQL但是,这是我第一次必须执行如下查询。它有效,但我想知道是否有更好的方法来编写它。
SELECT * FROM foo WHERE bar = 10058 or bar = 90234 or bar = 98211 or bar 4002 or bar = 90023
使用此方法可以提取的行数是否有限制?我弄错了吗?有更好的方法吗?
在这个特殊案例栏中的FYI将始终是唯一的
答案 0 :(得分:5)
使用IN
,如下所示:
SELECT * FROM foo WHERE bar IN (10058,90234,98211,4002,90023)
答案 1 :(得分:2)
您可以将WHERE子句压缩为:
SELECT * FROM foo WHERE bar in (10058,90234,98211,4002,90023)
答案 2 :(得分:1)
您想使用IN
:
SELECT *
FROM `foo`
WHERE `bar` IN (10048, 90234, 98211, 4002, 90023)
答案 3 :(得分:0)
你想要一个IN
子句,如
SELECT * FROM foo WHERE bar in (10058,90234,98211,4002,90023)
无论如何,你的数据库引擎会在运行时将其扩展为OR堆栈;即喜欢
WHERE bar = 10058 or bar = 90234 or bar = 98211 or bar 4002 or bar = 90023