如何查詢包含 IN 集合字段的數據庫表?

如何查詢包含 IN 集合字段的數據庫表?

查詢 in 集合字段的最佳做法

數據庫表包含一個 in 集合字段(如 user_id),并且需要根據該字段中的特定值查詢數據時,需要采用特定方法。

考慮下文中給出的查詢:

select * from project where $this->auth->id in user_id......

這個查詢的目的是找出當前登錄用戶參加的項目列表。然而,由于查詢中的語法錯誤,它無法正常工作。

解決方法:

如果無法修改表結構,有兩種方法可以使用:

  • find_in_set:此函數用于檢查一個值是否在由逗號分隔的字符串(user_id 字段)中。例如,以下查詢將找到 user_id 為 21 的項目:
find_in_set(21,user_id)
  • like:運算符用于模糊匹配。例如,以下查詢將找到包含 user_id 為 21 的所有項目:
user_id like '21,%' or user_id like '%,21' or user_id like '%,21,%' or user_id=21

通過使用 find_in_set 或 like,可以查詢 in 集合字段,并根據特定值返回相關數據。

? 版權聲明
THE END
喜歡就支持一下吧
點贊12 分享