所以我有两个单独的表。在第一个表格中,有一堆广告组具有ID。在第二个表格中有一堆广告,其中的列包含每个广告的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%';
以前的查询工作也是如此?是
我的查询效率如何? NO!
我想知道如何以更有效的方式运行以前的MySQL查询。
编辑:
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
所以我最终应该:
that 103
is 105
special 104
please 103
希望这是有道理的。
编辑2:
以下代码给出了相同的结果并且更短,但是当我需要选择更多值时,我无法想象这样做。
SELECT * FROM ads WHERE ad_group_id IN (103,104,105,107,117,118,120);
答案 0 :(得分:1)
据我了解,您存储ad_group_id,如id1,id2,id3等。 如果是,则此关系是多对多的,并且更有效地创建附加表 2列ad_id,ad_group_id。但这取决于您的数据量。