然而,我一直在使用 mySQL,这是我第一次必须执行如下查询。它有效,但我想知道是否有更好的方法来编写它。
SELECT * FROM foo WHERE bar = 10058 or bar = 90234 or bar = 98211 or bar 4002 or bar = 90023
使用这种方法可以提取的行数是否有限制?我犯错了吗?有没有更好的办法?
仅供参考,在这种特殊情况下,酒吧总是独一无二的
使用IN
,像这样:
SELECT * FROM foo WHERE bar IN (10058,90234,98211,4002,90023)
您可以将 WHERE 子句压缩为:
SELECT * FROM foo WHERE bar in (10058,90234,98211,4002,90023)
你想使用IN
:
SELECT *
FROM `foo`
WHERE `bar` IN (10048, 90234, 98211, 4002, 90023)
你想要一个IN
像
SELECT * FROM foo WHERE bar in (10058,90234,98211,4002,90023)
无论如何,在内部,您的数据库引擎将在运行时将其扩展为 OR'ed 堆栈;即喜欢
WHERE bar = 10058 or bar = 90234 or bar = 98211 or bar 4002 or bar = 90023