2016-07-13 12 views
0

ユーザーが1つ以上の単語を入力でき、それらの単語を含む可能性のあるデータを返す検索方法を作成しようとしています。効率的な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秒かかり持っています。 '好き'を使って複数のテーブルを検索するより効率的な方法はありますか?これをどのように改善できますか? MySQL BOOLEAN

これは、1つ以上のキーワードの検索を処理するための推奨される方法ですか?

+1

LIKEを使用する代わりに全文検索を参照してください –

+0

なぜ 'like'を使用していて、' = 'を使用していませんか? –

+0

私は無知なので笑:)私はこの提案を試してみましょう。 – stingMantis

答えて

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節が削除されます。それを試すことができます

+0

ブラックドッグありがとう、これはトリックと驚くほど速いでした。ワン・エックスエイ。 :) – stingMantis

関連する問題