首頁 >資料庫 >mysql教程 >如何從資料庫中以逗號分隔的欄位有效檢索使用者名稱?

如何從資料庫中以逗號分隔的欄位有效檢索使用者名稱?

Susan Sarandon
Susan Sarandon原創
2024-12-17 13:32:18639瀏覽

How Can I Efficiently Retrieve Usernames from a Comma-Separated Column in a Database?

從逗號分隔列中提取用戶名

考慮一個場景,其中您有多個表: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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn