如果列为空,如何停止使用 CONCAT_WS 添加逗号

Try*_*est 3 mysql concatenation concat-ws

SELECT CONCAT_WS(',', Col1, Col2, Col3 ) AS combined FROM table_name
Run Code Online (Sandbox Code Playgroud)

目前,如果我有字段 Col1 = 'hello', Col2 = 'Bye', Col2 = 'Goodnight'

上面的 select 语句会返回 hello,Bye,Goodnight 这很好。

如果任何一个 Cols 为空怎么办。仍然会添加逗号。比如你好,晚安。

有没有办法说 Col 是否为空然后忽略它?(这是 MySQL)

Gio*_*sos 6

如果函数的任何一个参数是 ,则函数会CONCAT_WS忽略NULL值并且不会生成分隔符NULL

对于空''值,即等于,您可以使用值NULLIF

SELECT CONCAT_WS(',', NULLIF(Col1, ''), NULLIF(Col2, ''), NULLIF(Col3, '') ) AS combined 
FROM table_name
Run Code Online (Sandbox Code Playgroud)