重複の可能性:
MYSQL OR と IN のパフォーマンス
私は何が違うのだろうと思っていました:
SELECT * FROM table WHERE cat = 'cat1' OR cat = 'cat2' OR cat = 'cat3'
と:
SELECT * FROM table WHERE cat in ('cat1', 'cat2', 'cat3')
違いはありますか?私が試したところ、どちらも同じ結果が得られました。
重複の可能性:
MYSQL OR と IN のパフォーマンス
私は何が違うのだろうと思っていました:
SELECT * FROM table WHERE cat = 'cat1' OR cat = 'cat2' OR cat = 'cat3'
と:
SELECT * FROM table WHERE cat in ('cat1', 'cat2', 'cat3')
違いはありますか?私が試したところ、どちらも同じ結果が得られました。
それらは同一であり、すべてのステートメントIN()
をリストすることを使用した簡略版です。OR
IN()
OR
特に多くの句がある場合は、構文がはるかに短くなり、読みやすくなります。
IN
で非常に簡単にできるが、 ではできないことがもう 1 つあります=
。
SELECT *
FROM `table`
WHERE `column` IN (
SELECT col_name
FROM `table2` -- or the same table
WHERE `some_column` = 5
)
したがって、基本的には別のテーブルのサブセットを検索しますが、これは便利な場合があります。
実際の使用法: