在 MySQL 查詢結果中產生逗號分隔的清單
許多資料庫使用者需要在 MySQL 查詢中使用逗號分隔的清單。雖然 MySQL 不直接支援這一點,但 GROUP_CONCAT
函數提供了一個簡單的解決方案。
問題
想像一個檢索出版品資料和關聯站點名稱的查詢:
<code class="language-sql">SELECT p.id, p.name, (SELECT name FROM sites s WHERE s.id = p.site_id) AS site_list FROM publications p;</code>
這將傳回一個「site_list」列,每個出版品僅包含一個網站名稱。 我們需要一個以逗號分隔的清單。
解:GROUP_CONCAT
GROUP_CONCAT
函數連接列中的值。 這是改進的查詢:
<code class="language-sql">SELECT p.id, p.name, GROUP_CONCAT(s.name) AS site_list FROM sites s INNER JOIN publications p ON s.id = p.site_id GROUP BY p.id, p.name;</code>
這使用 INNER JOIN
連結「網站」和「出版品」表,確保正確的網站-出版物關聯。 GROUP_CONCAT(s.name)
連結網站名稱,GROUP BY p.id, p.name
依出版品 ID 和名稱將結果分組,在「site_list」欄位中建立所需的逗號分隔清單。 這有效地提供了所需的輸出。
以上是如何取得 MySQL 查詢結果中以逗號分隔的值清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!