在 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中文网其他相关文章!