2014-10-16 2 views
0

Я использую поиск 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. Но я получаю этот результат

enter image description here

То есть c_link_type пустой, что неправильно, и что из-за FULLTEXT, Может кто-нибудь направить меня в правильном направлении?

ответ

2

Лучшее предположение, я могу видеть, с данными, приведенными на скриншоте, вы недостающие круглые скобки вокруг:

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

Держу пари, ваша колонка s.display_name имеет «Trend Micro» в нем.

+0

да, есть. Теперь работает отлично :) –

Смежные вопросы