小编Mir*_*ous的帖子

多个 GROUP_CONCAT 列之间的顺序

我似乎找不到有关 GROUP_CONCAT 函数默认行为的任何信息,主要是当我使用其中多个时,返回的值之间的顺序是否相同?

对于此示例表和数据:

CREATE TABLE `test` (
  `id` int(11) NOT NULL,
  `parentId` int(11) NOT NULL,
  `weight` int(11) NOT NULL,
  `color` varchar(7) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `test` (`id`, `parentId`, `weight`, `color`) VALUES
(1, 1,  500,    '#aa11dd'),
(2, 1,  770,    '#ffffff'),
(3, 2,  100,    '#ff00ff'),
(4, 2,  123,    '#556677');
Run Code Online (Sandbox Code Playgroud)

如果我这样做选择:

SELECT `parentId`, 
        GROUP_CONCAT(`weight`), 
        GROUP_CONCAT(`color`), 
        GROUP_CONCAT(`id`) 
FROM `test` 
GROUP BY `parentId`
Run Code Online (Sandbox Code Playgroud)

它返回:

parentId    GROUP_CONCAT(weight)    GROUP_CONCAT(color)     GROUP_CONCAT(id)
1           500,770                 #aa11dd,#ffffff         1,2
2           79798,123               #ff00ff,#556677 …
Run Code Online (Sandbox Code Playgroud)

mysql database group-concat mariadb

2
推荐指数
1
解决办法
846
查看次数

标签 统计

database ×1

group-concat ×1

mariadb ×1

mysql ×1