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

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万个字符。如果您希望这个更改在服务器重启后依然有效,您需要在服务器配置文件中设置它。

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

 

posted on 2024-09-07 15:21  oktokeep  阅读(89)  评论(0编辑  收藏  举报