日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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();

其中子條件中的第一個條件用wherewhereOr效果都是一樣的,但后面兩個必須用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 实现多字段的关键词模糊查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。