以特定格式擷取資料(例如逗號分隔的清單)是一項常見任務。 假設您需要出版物詳細資訊和以逗號分隔的關聯網站名稱清單。使用子查詢的簡單方法可能如下所示:
<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>
但是,這會每行產生一個網站名稱,而不是逗號分隔的清單。
建立所需的逗號分隔清單的關鍵是 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(s.name)
來組合網站名稱。 INNER JOIN
有效連結 publications
和 sites
表,GROUP BY p.id, p.name
確保 GROUP_CONCAT
函數正確聚合每個出版物的網站名稱。
以上是如何從 MySQL 查詢結果產生逗號分隔的清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!