gpt4 book ai didi

mysql - 当数据不为空时如何合并不同列的数据?

转载 作者:行者123 更新时间:2023-11-29 08:21:50 24 4
gpt4 key购买 nike

我有一个包含不同列的表格,如下所示

CREATE TABLE survey(
id int(11) not null auto_increment,
what_is_your_name VARCHAR(255),
how_old_are_you varchar(20),
your_occupation varchar(255)
...
...
...
)

我需要根据调查表的结果构建输出,但仅当列不为空时才需要连接值。

所以如果提供了所有值,我希望最终的字符串看起来像这样姓名是:[你的名字是什么]年龄:[你多大了]职业:[您的职业]

如果只提供了 2 个值,但 [what_is_your_name] 为 null,则输出应如下所示姓名是:[你的名字是什么]职业:[您的职业]

但是,我只想连接该值,因为该值不为空。请注意,上表还有很多问题,但我只发布了一些表来解释问题。

如何在 MySQL 中做到这一点?

谢谢

最佳答案

你可以做这样的事情

SELECT CONCAT_WS(' ', 
COALESCE(CONCAT('NAME: ', what_is_your_name), ''),
COALESCE(CONCAT('AGE: ', how_old_are_you), ''),
COALESCE(CONCAT('OCCUPATION: ', your_occupation), '')) survey_details
FROM survey

示例输出:

+---------------------------------------------------+| survey_details                                    |+---------------------------------------------------+| NAME: john AGE: 35 OCCUPATION: Software Developer || NAME: mark  OCCUPATION: Unemployed                || NAME: helen AGE: 35                               |+---------------------------------------------------+

这里是SQLFiddle 演示

关于mysql - 当数据不为空时如何合并不同列的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19173827/

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