MySQL多項模糊查詢

2022-03-24 06:22:43 字數 609 閱讀 6027

最近有個需求,就是要根據搜尋框裡面的關鍵字,找到符合條件的資料。

如果是單個條件的話,其實就是乙個普通的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模糊查詢 MYSQL模糊查詢

mysql提供標準的sql模式匹配,以及一種基於象unix實用程式如vi grep和sed的擴充套件正規表示式模式匹配的格式。一 sql模式 sql的模式匹配允許你使用 匹配任何單個字元,而 匹配任意數目字元 包括零個字元 在 mysql中,sql的模式預設是忽略大小寫的。下面顯示一些例子。注意在你...

mysql模糊查詢索引 MySQL模糊查詢全文索引

全文索引 mysql front dump 2.5 host localhost database test server version 4.0.12 nt log table structure for table t3 create table t3 name char 12 not null...

mysql 正反模糊查詢 mysql模糊查詢

mysql 使用內建函式進行模糊查詢 locate,position,instr,find in set 1 locate substr str,pos 方法 2 position substr in field 方法 3 instr str substr 方法 4 find in set str1...