查詢 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