2017-04-14 6 views
1

私はクエリーについて非常に新しいので、私が取り組んでいるクエリーに対してより簡単なソリューションがあるかどうかを知りたいと思います。例えば複数のOR文を避けるための効率的なMySQLクエリーメソッド

私は、xが、私は以下のようなクエリを持って5,7,9,11,13,15および17

でデータを取得したいです。

SELECT * FROM abc WHERE x = 5 or x = 7 or x = 9 or x = 11 or x = 13 or x = 15 or x = 17; 

このクエリを使用しても問題ありませんか、他の簡単で効率的なソリューションがありますか?

EDIT

私は、x = [5,7,8,11,13,15,17] VS X = [5,11,7,15,8を使用する場合、それはもパフォーマンスに影響を与えますか、 17,13]

Xは、たとえば別のカテゴリのIDです。

答えて

3

これは短いですが、同じように

SELECT * FROM abc WHERE x in (5,7,9,11,13,15,17) 

を行い、しかしin句内の1つのエントリがnullであれば、それはFALSEを返します覚えています。

+0

ありがとうございました!ベンチマークについて検索し、自分で試してみます。ところで、トピックをオフにすると、出力が最近から古いものの代わりに無作為になるようにしたい場合、私は何を提案しますか? –

+2

'order by rand()' –

関連する問題