我在MySQL中遇到了查询或表的问题,我花了很多时间来解决它,但我仍然没有答案。所以我需要你的帮助。
表的格式是那样的
-------------------------------------------------------------
col1 | col2 | col3 | col4 | col5 | col6 |
-------------------------------------------------------------
a | b | c | null | null | null |
-------------------------------------------------------------
null | null | null | 1 | 2 | 3 |
-------------------------------------------------------------
null | null | null | 4 | 5 | 6 |
-------------------------------------------------------------
null | null | null | 7 | 8 | 9 |
-------------------------------------------------------------
d | e | f | null | null | null |
-------------------------------------------------------------
null | null | null | 10 | 11 | 12 |
-------------------------------------------------------------
null | null | null | 13 | 14 | 15 |
-------------------------------------------------------------
null | null | null | 16 | 17 | 18 |
-------------------------------------------------------------
...
该表具有类似的结构,因为它从大型csv文件(大约300k行)加载数据。我想要的只是编写一个mysql语句,以最快的速度查询记录,结果是格式:
(A,B,C,1,2,3),(A,B,C,4,5,6),(A,B,C,7,8,9),(d,E, f,10,11,12),(d,e,f,13,14,15),(d,e,f,16,17,18)......
但是......怎么样?请帮我解决问题。 事先提出
答案 0 :(得分:2)
看起来很丑,但很有效。
SELECT * FROM (
SELECT
IF(col1 IS NULL,@c1,@c1:=col1) AS col1,
IF(col2 IS NULL,@c2,@c2:=col2) AS col2,
IF(col3 IS NULL,@c3,@c3:=col3) AS col3,
col4, col5, col6
FROM
[table name],
( SELECT @c1:=0, @c2:=0, @c3:=0 ) x
) y WHERE col4 IS NOT NULL;