gpt4 book ai didi

php - 仅当值不为空时才可以使用 CONCAT_WS 添加分隔符

转载 作者:行者123 更新时间:2023-11-29 19:09:49 24 4
gpt4 key购买 nike

假设我有这张 table

id  a       b
1 data 1234
2 data

我想与分隔符连接(但是)如果没有数据,则不要添加分隔符。

如果我这样做

UPDATE `table` SET `b` = CONCAT_WS(',',`b`,'newData') WHERE `id` = '1'

我在 b 中得到了预期的 1234,newData

但我愿意

UPDATE `table` SET `b` = CONCAT_WS(',',`b`,'newData') WHERE `id` = '2'

我在 b 中得到 ,newData ((但我只想要没有分隔符的 newData ))。

有办法做到这一点吗?

最佳答案

你可以试试这个,伙计:

# [A] sample result set for checking
SELECT
`a`, `b`,
IF(
(`a` IS NOT NULL AND `a` != '')
AND (`b` IS NOT NULL AND `b` != ''),
CONCAT_WS(',', `a`, `b`),
REPLACE(CONCAT_WS(',', `a`, `b`), ',', '')
) `result`
FROM `table`
WHERE `id` IN (1, 2);

如果[A]中的结果集满足您的需要,您可以使用[B]继续执行脚本

<小时/>

更新查询:

# [B] process query for the new values
UPDATE `table`
SET `b` = IF(
(`a` IS NOT NULL AND `a` != '')
AND (`b` IS NOT NULL AND `b` != ''),
CONCAT_WS(',', `a`, `b`),
REPLACE(CONCAT_WS(',', `a`, `b`), ',', '')
)
WHERE `id` IN (1, 2);

希望能帮到你,干杯!

关于php - 仅当值不为空时才可以使用 CONCAT_WS 添加分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43175145/

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