したがって、2つの別個のテーブルがあります。最初の表には、idを持つ広告グループが多数あります。 2番目の表には、各広告のad_group IDを含む列を持つ一連の広告があります。 ad_group_idは、広告グループテーブルの広告グループのIDにすぎません。そのため、ad_group_idが103,104,105,107,117117、および120のすべての広告を選択しようとしています。別のテーブルから値を選択する
したがって、次のクエリを試しました。
SELECT * FROM ads WHERE ad_group_id LIKE '%103%' OR ad_group_id LIKE '%104%'
OR ad_group_id LIKE '%105%' OR ad_group_id LIKE '%107%' OR ad_group_id LIKE '%117%' OR ad_group_id LIKE '%118%' OR ad_group_id LIKE '%120%';
これまでのクエリの動作は?はい
私のクエリは効率的でしたか?いいえ!
以前のMySQLクエリをより効率的に実行する方法を知りたいと思います。
EDIT:
that 103
is 105
special 104
please 103
理にかなっている希望を:
AD GROUP - table 1
id name
100 Tony
100 David
103 James
104 Ann
105 Jon
150 Sara
AD - table 2
keyword ad_group_id
that 103
one 100
is 105
special 104
no 100
please 103
だから私はで終わる必要があります。
EDIT 2:
次のコードは、同じ結果を与えると短いですが、私は選択する必要が複数の値があるとき、私はこれをやって想像することはできません。
SELECT * FROM ads WHERE ad_group_id IN (103,104,105,107,117,118,120);
あなたの質問は完全には明確ではありません。あなたはこれらのテーブルのデータのいくつかの例とあなたが探している結果を加えてください。 – Oded
なぜ「好き」ですか?なぜ=ではない? –
私はSQLに慣れていない、何らかの理由で、私が必要とする特定の価値を持たない限り、私は常にLIKEを使用します。 – ATMathew