如果col1
具有值lorem
或null
col2
-ipsum
或null
col3
-dolor
或null
如果前面的列中没有col4
,则lorem,ipsum,dolor
应为null
。
例如,如果col2
是null
结果应该是lorem,dolor
有点像-update table set col4 = concat(col1, col2, col3)
-但是跳过空值
这可以使用mysql吗?
最佳答案
你可以使用CONCAT_WS
:
CONCAT_WS()不跳过空字符串。但是,它会跳过分隔符参数之后的任何空值。
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
关于mysql - 通过跳过空值来连接列值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57543543/