首页 > 数据库 > mysql教程 > 如何连接数据库中每部电影的演员姓名?

如何连接数据库中每部电影的演员姓名?

Mary-Kate Olsen
发布: 2025-01-15 08:32:44
原创
569 人浏览过

How to Concatenate Actor Names for Each Movie in a Database?

将单个列的多个结果行连接起来,按另一列分组

在一个数据库表中,列名例如“电影”和“演员”,您可能需要将属于同一电影的多个演员行组合成单个逗号分隔的字符串。

<code>表:

| 电影 | 演员 |
|---|---|
| A | 1 |
| A | 2 |
| A | 3 |
| B | 4 |</code>
登录后复制

预期结果:

<code>| 电影 | 演员列表 |
|---|---|
| A | 1, 2, 3 |
| B | 4 |</code>
登录后复制

使用 string_agg() 函数的解决方案:

为此,您可以利用 string_agg() 聚合函数。以下是查询:

<code>SELECT 电影, string_agg(演员, ', ') AS 演员列表
FROM 表
GROUP BY 电影;</code>
登录后复制

string_agg() 函数连接“演员”列中的值,用逗号和空格分隔它们。GROUP BY 电影子句确保结果按电影名称分组。

其他注意事项:

  1. GROUP BY 1 中的 1 是对第一列的索引引用,在本例中为“电影”。
  2. string_agg() 期望文本数据类型作为输入。如果您的“演员”列具有其他类型(例如,整数),您可能需要将其显式转换为文本,例如 string_agg(演员::text, ', ')。
  3. 您可以在 string_agg() 函数中使用 ORDER BY 子句来排序连接的值(例如,ORDER BY 演员)。

此方法提供了一种简单有效的方法来连接特定列的多个行,并按另一列分组。

以上是如何连接数据库中每部电影的演员姓名?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板