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)

とにかく、内部的に DB エンジンは実行時に OR されたスタックとして展開します。つまり好き

WHERE bar = 10058 or bar = 90234  or bar = 98211 or bar 4002 or bar = 90023
于 2012-05-24T16:23:26.383 に答える