我正在寻找创建一种搜索方法,用户可以在其中输入一个或多个单词,然后返回任何可能包含这些单词的数据。
我有以下查询
select e.eventName
from events e
where e.eventName like '%emma%' or
e.eventId in (select et.eventId from event_tags et where et.tagName like '%emma%');
` 然而,这需要高达33.03秒。有没有更有效的方法使用'like'搜索多个表呢?我怎样才能改善这个?我找到了MySQL BOOLEAN
的链接这是处理搜索一个或多个关键字的首选方法吗?
答案 0 :(得分:1)
select e.eventName from events e inner join event_tags et on e.eventId=et.eventId and et.tagName like "%emma%"
union
select e2.eventName from events e2 where e2.eventName like "%emma%"
删除in子句。你可以尝试一下