mysql concat数据如果为null,则结束,如果为非null,则继续concat
我以前在sql问题中使用过stack over flow,并取得了成功 这一次,我的下一期可能不会那么成功 我有一个表,我们将称之为mysql concat数据如果为null,则结束,如果为非null,则继续concat,mysql,concat,Mysql,Concat,我以前在sql问题中使用过stack over flow,并取得了成功 这一次,我的下一期可能不会那么成功 我有一个表,我们将称之为Statements\u1,它大约有50列,比如说10000行 每列中都有一条语句,如“my dog runs”,或者该列为空 列标记为1、2、3等,直到50 以及所有行都以简单pk开始,从1开始直到10000 表中每一行的数据长度不一致 例如,第1行在5个连续列中有一条语句,第2行在37个连续列中有一条语句,第3行在19个连续列中有一条语句,等等 我需要做的是编写
Statements\u1
,它大约有50列,比如说10000行
每列中都有一条语句,如“my dog runs”,或者该列为空
列标记为1、2、3等,直到50
以及所有行都以简单pk开始,从1开始直到10000
表中每一行的数据长度不一致
例如,第1行在5个连续列中有一条语句,第2行在37个连续列中有一条语句,第3行在19个连续列中有一条语句,等等
我需要做的是编写一些简单的代码,使用语句into table statements_2 column 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 |
|ID |子弹|
----------------------------------
|我的狗跑|
|2 | 14个苹果味道很好|
|3 |是的,这很有趣|
|4 |我在浪费我的资源|
这里是演示
返回列表中的第一个非空值。在本例中,如果列值为NULL,则返回空字符串,否则返回值本身。现在是一种用分隔符连接一组值的简便方法。您能解释一下concat_ws的作用吗?以及合并?我以前从未使用过这两种变体。而且SQLFiddle非常有用@Chris查看更新的答案以获得一些解释。如果它是你要找的,请考虑答案。“克里斯有帮助吗?”你的问题需要更多的帮助吗?很高兴听到这个!这个答案有帮助吗?