如果col1具有值loremnull
col2-ipsumnull
col3-dolornull
如果前面的列中没有col4,则lorem,ipsum,dolor应为null
例如,如果col2null结果应该是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/

10-13 04:47