gpt4 book ai didi

mysql - 如何使用 SQL 将具有条件条目的列表连接到一个字符串

转载 作者:太空宇宙 更新时间:2023-11-03 10:40:56 26 4
gpt4 key购买 nike

我需要创建一个 csv 文件,其中包含一个字段,其中应根据每个条目的条件列出不同的元素。

例如我有这张表

id    col1    col2    col3
1 false false true
2 true true true
3 true false true

csv 应该是这样的:

id,params
"1","col3"
"2","col1,col2,col3"
"3","col1,col3"

我想到了这样的事情:

SELECT 
id,
CONCAT(
IF(`col1`, 'col1,',''),
IF(`col2`, 'col2,',''),
IF(`col3`, 'col3','')
) AS `params`
FROM `table`

但问题是,这只有在最后一列 (col3) 为真时才有效,否则末尾会有一个尾随逗号。

这在 MySQL SQL 方言中可能吗?

最佳答案

IF 条件中使用 null 而不是空字符串,并使用 CONCAT_WS 连接值。

SELECT id, concat_ws(',',c1,c2,c3) params
FROM (SELECT
id,
IF(`col1`, 'col1',null) c1,
IF(`col2`, 'col2',null) c2,
IF(`col3`, 'col3',null) c3
FROM t) x

或者

SELECT id,
concat_ws(',',if(col1,'col1',null),if(col2,'col2',null),if(col3,'col3',null)) params
FROM t

关于mysql - 如何使用 SQL 将具有条件条目的列表连接到一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38704761/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com