當前位置:
首頁 >
TP5 实现多字段的关键词模糊查询
發布時間:2025/7/14
49
豆豆
生活随笔
收集整理的這篇文章主要介紹了
TP5 实现多字段的关键词模糊查询
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們在開發中會遇到關鍵詞查詢,但是查詢的關鍵詞又是多個字段的。
我們要考慮到的是這幾個字段LIKE查詢的時候,他們的關系是或關系,最外層則是和關系。
1、實現思想
- 舉例子:我們要查詢用戶表中的 1.用戶名 2.用戶公司名稱 3.用戶標簽,
- 我們另外再帶上 用戶類型為1 的條件。大概的模式如下:
類型 =1 AND (用戶名 LIKE %關鍵詞% OR 用戶公司名稱 LIKE %關鍵詞% OR 用戶標簽 LIKE %關鍵詞%)
2、TP5如何實現
2.1、第一種實現方法
$keyword = input('keyword') ?? ''; $user = (new UserModel)->where('type', 1)->where(function ($query) use ($keyword) {if ($keyword == '') {$query->whereOr('username', 'like', '%' . $keyword . '%')->whereOr('company_name', 'like', '%' . $keyword . '%')->whereOr('labels', 'like', '%' . $keyword . '%');}})->select();其中子條件中的第一個條件用where和whereOr效果都是一樣的,但后面兩個必須用whereOr
2.2、第二種實現方法
$keyword = input('keyword') ?? ''; $user = (new UserModel)->where('type', 1)->where(function ($query) use ($keyword) {if ($keyword == '') {$query->where("concat(username,company_name,labels) LIKE '%$keyword%' ");}})->select();下面這種用了數據庫方法的concat,目的是將要查詢的字段拼接在一起與關鍵詞匹配,也就是或查詢
- 另外需要注意的是第二種需要用雙引號,關鍵詞需要用單引號括起來。
- 這種查詢需要整個條件寫在一起,不能單獨逗號分隔寫
總結
以上是生活随笔為你收集整理的TP5 实现多字段的关键词模糊查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TP5 使用IN查询时如何限制条数
- 下一篇: TP5 实现链接分享/帮助,限制每个用户