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 = '';