1. 程式人生 > >MySQL多項模糊查詢

MySQL多項模糊查詢

logs alt 查找 cat com 關鍵字 導師 concat 復雜

最近有個需求,就是要根據搜索框裏面的關鍵字,找到符合條件的數據。

如果是單個條件的話,其實就是一個普通的select語句。

但是需求是這個關鍵字,要在id,desc,step等多個字段模糊查找。

然後最直觀的一個思路肯定就是:

select * from t_bug where `id` like  %key% or `desc` like %key%
or `step` like %key%

對一條記錄,要對id、desc、step三項都判斷一下符不符合key。

缺點:需求只有三個記錄,如果是多個記錄的話,那就效率會很慢,而且修改這個語句也很復雜。

一個更好的方法是,把需要模糊查詢的各個字段,用concat拼接起來,成為一整個字符串,再用like來匹配。

SELECT * FROM t_bug WHERE  CONCAT(`desc`,`step_to_string`,`bug_id`) LIKE %key%

我在項目中就是這麽做的,導師也認為沒什麽大問題:

技術分享

各位有什麽更好的方法,也可以交流一下哈。

MySQL多項模糊查詢