將MySQL查詢結果當作逗號分隔清單取得
在MySQL中,您可能需要將查詢結果作為逗號分隔清單檢索。雖然可以使用子查詢來提取特定信息,但在將數據以所需格式呈現時,會遇到一些限制。
問題:
考慮以下查詢:
<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>
子查詢將各個站點名稱作為單獨的列返回,這與所需的逗號分隔清單結果不符。
解:
MySQL 提供了 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>
GROUP_CONCAT
將指定欄位(在本例中為 "sites" 表中的 "name" 欄位)中的值連接起來,並用預先定義的分隔符號(通常為逗號)分隔它們。然後,結果會按 "publications" 表中的 "id" 和 "name" 欄位分組,為每個出版物及其關聯的網站提供一個唯一的記錄,這些網站以逗號分隔清單的形式顯示。
以上是如何以逗號分隔清單的形式檢索 MySQL 查詢結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!