mysql sql同一个字段多个行转成一个字段查询

2024-10-09 12:32:52 浏览数 (1)

mysql sql同一个字段多个行转成一个字段查询

如果您想要将MySQL中同一个表的不同行的值合并到一个字段中,您可以使用GROUP_CONCAT()函数。这个函数可以将多个行的值连接起来,并且可以通过SEPARATOR关键字指定分隔符。 以下是一个简单的例子,假设我们有一个名为users的表,它有一个name字段,我们想要将所有用户的名字合并到一个字段中,用逗号分隔:

SELECT GROUP_CONCAT(name SEPARATOR ', ') AS names FROM users;

这将返回一个单一的行,其中包含所有用户名以逗号和空格分隔的字符串。 请注意,GROUP_CONCAT()有一个默认的长度限制,通常是1024个字符。如果您的合并结果可能会超过这个长度,您可以在查询前通过设置group_concat_max_len会话变量来增加这个限制。

SET SESSION group_concat_max_len = 1000000; SELECT GROUP_CONCAT(name SEPARATOR ', ') AS names FROM users;

这将设置最大长度为100万个字符。如果您希望这个更改在服务器重启后依然有效,您需要在服务器配置文件中设置它。

代码语言:javascript复制
#demo:查询gps表的多个设备序列号,组成一行,中间以逗号分隔
SELECT GROUP_CONCAT(serial_number SEPARATOR ', ') FROM `tbl_gps` WHERE car_no = '';

0 人点赞