通过跳过空值来连接列值

时间:2019-08-18 10:10:54

标签: mysql

如果col1的值为loremnull
col2-ipsumnull
col3-dolornull

如果前面的列中没有col4,则

lorem,ipsum,dolor应该为null

例如,如果col2null,则结果应为lorem,dolor

类似于-update table set col4 = concat(col1, col2, col3)-但跳过空值

使用mysql是否可能?

1 个答案:

答案 0 :(得分:1)

您可以使用CONCAT_WS

  

CONCAT_WS()不会跳过空字符串。但是,它会跳过分隔符参数之后的所有NULL值。

update table set col4 = concat_ws(',', col1, col2, col3);

为避免每次我建议使用generated column时都运行更新:

CREATE TABLE t(id INT, col1 TEXT, col2 TEXt, col3 TEXT,
   col4 TEXT AS (concat_ws(',', col1, col2, col3))
)

db<>fiddle demo