我在单个查询的两个不同表中使用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 +micro
和c.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/