首页  >  文章  >  数据库  >  如何使用逗号分隔的连接字段列表连接表?

如何使用逗号分隔的连接字段列表连接表?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-13 02:49:02812浏览

How to Join Tables With a Comma-Separated List of Join Fields?

使用逗号分隔的列表连接字段连接表

在使用数据库时,您可能会遇到需要基于包含多个逗号的字段连接两个表的情况- 分隔值。在这种情况下,传统的联接可能不够。

考虑提供的示例,其中您有一个电影表,其中的类别列包含以逗号分隔的类别 ID。目标是执行一个查询,从电影表中排除类别列,而是从类别表中选择匹配的类别名称,并以数组形式返回它们。

要实现此目的,您可以使用以下查询:

SELECT m.id, GROUP_CONCAT(c.name) AS categories
FROM movies m
JOIN categories c ON FIND_IN_SET(c.id, m.categories)
GROUP BY m.id

解释:

FIND_IN_SET 函数检查是否在字符串中找到子字符串。如果找到则返回子字符串的位置,否则返回 0。在本例中,它检查电影表的类别列中是否存在类别表中的类别 ID。

查询使用 GROUP_CONCAT 连接每个电影 ID 的 JOIN 操作返回的类别名称。按 m.id 分组可确保每部电影的类别分组在一起。

输出:

查询的输出应类似于以下内容:

| id | categories         |
|---:|-------------------|
| 1  | Comedy, Drama      |
| 2  | Action, Drama      |
| 4  | Other, Dance      |

此技术根据逗号分隔的类别列表有效地连接两个表,允许您以数组格式检索类别名称。

以上是如何使用逗号分隔的连接字段列表连接表?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn