我正在尝试获取一个 MySQL 数据库,其描述分布在多行(从 CSV 文件导入),并将除描述之外的所有内容都为空白的行组合起来,以完成描述字段。
从这里开始:
ID PLU Description
100 1 Line 1
101 Line 2
102 2 Line 3
103 3 Line 4
105 Line 5
106 Line 6
尝试将其变成这样:
ID PLU Description
100 1 Line 1 Line 2
102 2 Line 3
103 3 Line 4 Line 5 Line 6
如有任何想法,我们将不胜感激。
编辑: 为了添加一些背景,我收到了一份价目表,格式为 CSV,不幸的是我无法更改传入格式。如果某个项目的描述太长,它将在下一个单元格中继续,留下许多行,只包含描述。我正在寻找一种方法,将独立的描述行附加到作为有效行一部分的描述中。如果在数据仍然是 CSV 的情况下有更简单的方法来做到这一点,我也绝对愿意这样做。
最佳答案
请参阅我的原始评论,但这可能有效:
SET @prevPLU := 0;
SET @firstID := 0;
SELECT MIN(ID) AS ID
, @prevPLU := IF(PLU='',@prevPLU, PLU) AS actualPLU
, GROUP_CONCAT(Description ORDER BY ID SEPARATOR ' ') AS Description
FROM theTable
GROUP BY actualPLU
;
关于mysql - 如果字段为空,则将 MySQL 行与前一行合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32233227/