gpt4 book ai didi

mysql concat 数据如果为 null 则结束,如果不为 null 则继续 concat

转载 作者:行者123 更新时间:2023-11-30 01:26:48 28 4
gpt4 key购买 nike

我之前曾使用 stack over flow 来解决我的 sql 问题并且成功了。

这一次我的下一期可能不会那么成功。

我有一个名为 Statements_1 的表,该表大约有 50 列,假设有 10,000 行。

每列中要么有一个语句,如“我的狗跑了”,要么该列为空。

这些列标记为 1、2、3 等,直到 50。

所有行都以简单的 pk 开头,从 1 开始直到 10,000。

表中每一行的数据长度不一致。

例如,第 1 行在 5 个连续列中有一个语句,第 2 行在 37 个连续列中有一个语句,第 3 行在 19 个连续列中有一个语句,等等。

我需要做的是编写一些简单的代码,使用表 statements_2 列 Bullet 中的语句创建 html 格式项目符号类型段落。例如:

我的狗跑
14个苹果味道不错
是的,这很有趣
我在浪费资源

我知道如何连接整行列,但这会浪费 CPU 和脚本运行时间,并且最终会在创建的网页上留下大量空白,其中存在空数据会根据行列总和中的数据量而有所不同。

这不仅浪费时间,而且内存积累得如此之快,我必须将脚本限制为一次 80 个,这样服务器就不会锁定,并在内存使用重载后给我一个网关超时。

关于从哪里开始有什么建议吗?

最佳答案

你在找这个吗?

SELECT id, 
CONCAT_WS(' ',
COALESCE(col1, ''),
COALESCE(col2, ''),
COALESCE(col3, ''),
COALESCE(col4, ''),
COALESCE(col5, '')) bullet
FROM Statements_1

输出:

| ID |                    BULLET |----------------------------------|  1 | my dog runs               ||  2 | 14 apples taste good      ||  3 | yes this is fun           ||  4 | I am wasting my resources |

这里是SQLFiddle 演示

COALESCE返回列表中的第一个非 NULL 值。在示例中,如果列值为 NULL,则返回空字符串,否则返回值本身。
现在CONCAT_WS()是用分隔符连接一堆值的便捷方法。

关于mysql concat 数据如果为 null 则结束,如果不为 null 则继续 concat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17915328/

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