假设我有这张表
id a b
1 data 1234
2 data
如果没有数据,我想与分隔符(但是)连接,不要添加分隔符。
如果我这样做
UPDATE `table` SET `b` = CONCAT_WS(',',`b`,'newData') WHERE `id` = '1'
我在b
但是我做了
UPDATE `table` SET `b` = CONCAT_WS(',',`b`,'newData') WHERE `id` = '2'
我得到了b
中的newData((但我只想要没有分隔符的newData)。
有没有办法做到这一点?
答案 0 :(得分:0)
你可以试试这个伴侣:
# [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);
希望我能帮忙,干杯!