我需要爲結果中每行從0開始的連接行中的每個字符串分配一個遞增值。MySQL GROUP_CONCAT分配遞增值
下面是一個簡化的數據樣本:
number|color
1 |red
1 |blue
1 |orange
2 |brown
3 |purple
3 |yellow
這是我需要的結果是:
number|color_set
1 |0 red,1 blue,2 orange
2 |0 brown
3 |0 purple,1 yellow
這是結果,我得到:
number|color_set
1 |0 red,1 blue,2 orange
2 |3 brown
3 |4 purple,5 yellow
這是什麼我一直在嘗試:
SET @x:=0;
SELECT number, GROUP_CONCAT(@x:[email protected]+1,' ',color SEPARATOR ',')
FROM table
GROUP BY number;
對於每個結果行,變量需要重置爲0。我不是很明顯的專家,我是新來的網站,所以任何幫助非常感謝。
感謝,
周杰倫
你爲什麼要這麼做?你最終想要實現什麼? – Strawberry
同意@Strawberry。在應用層執行分組通常比通過這種方式使用'GROUP_CONCAT()'更好。 – eggyal
事情是,在mysql中沒有'自然順序',所以沒有理由爲什麼紅色應該是0而不是1 – Strawberry