我在单个查询的两个不同表中使用FULLTEXT搜索。产生错误的结果。

select c.*, s.s_name, s.logo, s.s_slug, cm.coupon_code, cm.c_shorturl, cm.c_shorturl_id
from ci_coupons c
left join ci_stores s on s.store_id = c.store_id
left join ci_coupons_mapper cm on cm.coupon_id = c.coupon_id
where c.c_link_type like "%Banner%"
      and c.c_width='300'
      and match(c.c_name) against('+trend +micro') or match(s.display_name) against('+trend +micro')

order by c.coupon_id desc


在上面的查询中,我正在+trend +microc.c_name字段中搜索s.display_name,但是我希望c_link_type的结果为Banner。但我得到这个结果



那是c_link_type空白,这是错误的,那是由于FULLTEXT,有人可以引导我朝正确的方向前进吗?

最佳答案

我可以从屏幕快照中提供的数据中看到的最好的猜测是,您缺少以下内容:

and (match(c.c_name) against('+trend +micro') or match(s.display_name) against('+trend +micro'))


我敢打赌,您的s.display_name列中包含“ Trend Micro”。

关于mysql - 全文搜索产生错误的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26396246/

10-09 00:42