在使用資料庫時,您可能會遇到需要基於包含多個逗號的欄位連接兩個資料表的情況- 分隔值。在這種情況下,傳統的聯接可能不夠。
考慮提供的範例,其中您有一個電影表,其中的類別列包含以逗號分隔的類別 ID。目標是執行一個查詢,從影片表中排除類別列,而是從類別表中選擇符合的類別名稱,並以陣列形式傳回它們。
要實現此目的,您可以使用以下查詢:
SELECT m.id, GROUP_CONCAT(c.name) AS categories FROM movies m JOIN categories c ON FIND_IN_SET(c.id, m.categories) GROUP BY m.id
解釋:
FIND_IN_SET 函數檢查是否在字串中找到子字串。如果找到則傳回子字串的位置,否則傳回 0。在本例中,它會檢查電影表的類別列中是否存在類別表中的類別 ID。
查詢使用 GROUP_CONCAT 連接每個電影 ID 的 JOIN 操作傳回的類別名稱。按 m.id 分組可確保每部電影的類別分組在一起。
輸出:
查詢的輸出應類似於以下內容:
| id | categories | |---:|-------------------| | 1 | Comedy, Drama | | 2 | Action, Drama | | 4 | Other, Dance |
此技術根據逗號分隔的類別清單有效地連接兩個類別清單有效地連接兩個類別清單個表,允許您以陣列格式檢索類別名稱。
以上是如何使用逗號分隔的連線欄位清單連線表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!