高效的MySQL搜索

时间:2016-07-13 00:33:55

标签: mysql

我正在寻找创建一种搜索方法,用户可以在其中输入一个或多个单词,然后返回任何可能包含这些单词的数据。

我有以下查询

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

的链接

这是处理搜索一个或多个关键字的首选方法吗?

1 个答案:

答案 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子句。你可以尝试一下