我想通过带有search(LIKE)条件的关键字来获取一些帖子。我收到的行超出了我的预期!
我尝试了DISTINCT,但没有帮助, mysql5.7 x64,
SELECT DISTINCT ct.id,
ct.cat_link,
pt.post_id,
lng_ct.cat_title,
pt.post_title,
pt.post_link,
pt.post_content,
pt.post_tags,
pt.post_description,
pt.post_author,
pt.post_image,
pt.post_date,
pt.post_cat_id
FROM `cates_of_site` AS ct,
en_posts_of_site AS pt,
`en_cat_info` AS lng_ct,
`en_subcates_of_site` AS sub_ct
WHERE (pt.post_description LIKE '%hello%'
OR pt.post_tags LIKE '%hello%'
OR pt.post_title LIKE '%hello%')
AND ct.id = sub_ct.parent_id
AND pt.post_cat_id = sub_ct.subcat_id
LIMIT 0,10
en_posts_of_site
表中只有一行。但我得到7行。为什么?
en_posts_of_site:
en_subcates_of_site:
en_cat_info:
网站类别:
en_posts_of_site表中只有一行。但我得到7行。为什么?
答案 0 :(得分:0)
首先,不要使用旧版联接语法。此外,由于要联接所有表,因此要根据联接的表将结果相乘。
如果您不希望结果成倍增加,则需要使用exist。或者,您可以考虑使用group by
进行重复数据删除。但是,“ Exists”将具有更高的性能。