组concat列中的每一行都需要有一个递增的索引号。有可能吗?
SELECT pub_id,GROUP_CONCAT(CATE_ID SEPARATOR '/')
FROM book_mast
GROUP BY pub_id;
代替
| P001 | CA002/CA004
| P002 | CA003
我想要
| P001 | 1-CA002/2-CA004
| P002 | 1-CA003
有什么办法吗?
答案 0 :(得分:0)
您必须设置一个变量并将其递增:
SET @a:=0;
SELECT cate_ids FROM (
SELECT @a:=0, pub_id,GROUP_CONCAT( CONCAT( @a:=@a+1, '-', CATE_ID ) SEPARATOR '/') as cate_ids
FROM book_mast
GROUP BY pub_id
);
您需要创建一个变量,并在每个选择上将其设置为0并在group_concat函数上对其进行递增,以便计算每行而不是行本身的组concat的结果。
我也使用子选择来摆脱由@a设置创建的0字段。