如何編寫一個 in 相關(guān)的查詢方法?
用戶表中包含一個 id 字段,project 表中包含一個 user_id 字段,其中存儲著 user 表中的 id。管理員需要基于當(dāng)前已登錄用戶的 id,查詢其參加的比賽項目列表。
由于 user_id 字段的值可能是一個包含多個 id 的逗號分隔列表,因此直接使用 in 操作符進行查詢會失敗。
解決方法有兩種:
- 使用 find_in_set 函數(shù):此函數(shù)用于查找一個字符串在一個逗號分隔的列表中出現(xiàn)的第一個位置。例如,要查找 user_id 為 21 的用戶參加的項目,可以使用以下查詢:
select * from project where find_in_set(21, user_id)
- 使用 like 操作符:此操作符用于匹配部分字符串。例如,要查找 user_id 以 21 開頭的用戶參加的項目,可以使用以下查詢:
SELECT * FROM Project WHERE user_id LIKE '21,%' OR user_id LIKE '%,21' OR user_id LIKE '%,21,%' OR user_id = 21
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載。
THE END