從逗號分隔列中提取用戶名
考慮一個場景,其中您有多個表:tblA(用戶)、tblB(使用者名稱)、和tblC(以逗號分隔的使用者ID 的命名法)。目標是在搜尋特定命名法值時檢索所有使用者名稱。
現有方法和限制
提供的查詢嘗試使用交叉聯接和子字串函數從逗號分隔值中提取第一個用戶 ID。然而,當有多個使用者 ID 與命名法關聯時,這種方法效率低下,並且不能提供準確的結果。
規範化架構和改進的查詢
建議透過引入連接表來標準化資料庫模式。 tblC_user 表應包含兩個欄位:c_id(引用 tblC)和 userID(引用 tblB)。這將消除 tblC 中以逗號分隔的使用者 ID 的需要。
以下查詢示範如何使用規範化模式提取使用者名稱:
SELECT * FROM tblC c JOIN tblC_user cu ON (c.id = cu.c_id) JOIN tblB b ON (b.userid = cu.userid) WHERE c.nname = "new1";
此查詢將有效檢索所有關聯的使用者名稱具有「new1」命名法。
的好處標準化
標準化資料庫模式具有多種優點:
以上是如何從資料庫中以逗號分隔的欄位有效檢索使用者名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!