今日、私はこのようなクエリで回答を投稿しました
SELECT * FROM table_name where column_name IN (val1,val2,...)
別のユーザーがこのようなクエリの回答を投稿しました
SELECT * FROM table_name where val1 IN (column_name)
ここでわかるように、column_name と値の位置が入れ替わっています。
Mysql ドキュメントから
expr IN (値,...)
expr が IN リストのいずれかの値と等しい場合は 1 を返し、そうでない場合は 0 を返します。すべての値が定数である場合は、expr の型に従って評価され、並べ替えられます。アイテムの検索は、バイナリ検索を使用して行われます。これは、IN 値リストが完全に定数で構成されている場合、IN が非常に高速であることを意味します。
mysql> SELECT 2 IN (0,3,5,7);
-> 0
mysql> SELECT 'wefwf' IN ('wee','wefwf','weg');
-> 1
上記のもの(私のクエリ)が正しいことは明らかです。ただし、上記のクエリはどちらも同じ出力を生成します。
また、 Mysql Documentationにリストされている他のアプローチではないのはなぜですか?
この質問は、IN の使用に関する正規の情報源として役立ちます。その目的は、クエリでの IN の適切な使用法を詳述する、詳細で質の高い回答を得ることです。