如果字段为空,则将MySQL行与前一行组合

时间:2015-08-26 17:41:24

标签: mysql csv where rows

我尝试使用分布在多行(从CSV文件导入)的描述的MySQL数据库,并将除了描述之外的所有内容的行组合为空,以便完成描述字段。

从这开始:

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的情况下更容易实现此目的,我也肯定会对此开放。

1 个答案:

答案 0 :(得分:0)

请参阅我的原始评论,但这可能会有效:

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
;