0

然而,我一直在使用 mySQL,这是我第一次必须执行如下查询。它有效,但我想知道是否有更好的方法来编写它。

SELECT * FROM foo WHERE bar = 10058 or bar = 90234  or bar = 98211 or bar 4002 or bar = 90023

使用这种方法可以提取的行数是否有限制?我犯错了吗?有没有更好的办法?

仅供参考,在这种特殊情况下,酒吧总是独一无二的

4

4 回答 4

5

使用IN,像这样:

SELECT * FROM foo WHERE bar IN (10058,90234,98211,4002,90023)
于 2012-05-24T15:55:48.133 回答
2

您可以将 WHERE 子句压缩为:

SELECT * FROM foo WHERE bar in (10058,90234,98211,4002,90023)
于 2012-05-24T15:56:31.200 回答
1

你想使用IN

SELECT *
FROM `foo`
WHERE `bar` IN (10048, 90234, 98211, 4002, 90023)
于 2012-05-24T15:56:34.737 回答
0

你想要一个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
于 2012-05-24T16:23:26.383 回答