gpt4 book ai didi

mysql基于列从两行连接列

转载 作者:行者123 更新时间:2023-11-29 06:37:00 24 4
gpt4 key购买 nike

有下表,我试图将“值”列中的两行连接成一行

mysql> select * from table;
+-----+---------+----------+------------------------+
| id | rsvp_id | field_id | value |
+-----+---------+----------+------------------------+
| 181 | 37 | 1 | First |
| 184 | 37 | 4 | Last |
| 187 | 37 | 10 | |
| 190 | 37 | 13 | spicegirls |
| 193 | 37 | 7 | mark@test2.com |
| 196 | 40 | 1 | Brian |
| 199 | 40 | 1 | Smith |
| 202 | 40 | 7 | Brian@test .com |
| 205 | 40 | 10 | BBQ |
+-----+---------+----------+------------------------+
9 rows in set (0.00 sec)

理想情况下我想得到以下结果

rsvp_id  | value
======== ========
37 First Last
40 Brian Smith

查询仅获取 field_id=1 的行,然后连接值列并使用 rsvp_id 和连接值创建一个新行。

此外,现在的 field_id 列和 1 是一个示例,我必须弄清楚如何使其工作,以便它从不同的表中获取条件,而不是 1

以上基本上是名字和姓氏的值。 field_id 是不同表的外键。

我尝试过在线搜索并自己搞乱它,但我无法将两行合并为一行。

谢谢。

最佳答案

您必须使用分组,然后使用GROUP_CONCAT

像这样的东西(未经测试)可能会起作用:

   SELECT rsvp_id, GROUP_CONCAT(value SEPARATOR ' ')
FROM t
WHERE field_id = 1
GROUP BY rsvp_id

有关详细信息,请参阅 MySQL 文档,还可以了解值的排序等: https://dev.mysql.com/doc/refman/8.0/en/group-by-functions.html#function_group-concat

关于mysql基于列从两行连接列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53384146/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com