gpt4 book ai didi

MySQL CONCAT : Add a comma/separator only when field is NOT NULL

转载 作者:行者123 更新时间:2023-11-29 07:52:03 25 4
gpt4 key购买 nike

总而言之,我有一个更新查询,它将把一串数据(例如 SAVE15)附加到现有字段。目前,我预计该字段中已经包含一些信息,因此我的值将附加为“, SAVE15”,这是一个逗号和空格分隔符。这目前有效,但很快我预计仅当字段不为空时才需要插入逗号和空格。如果它为空,我需要它插入“SAVE15”。这是我当前的查询:

UPDATE sales_flat_order sfo
INNER JOIN sales_flat_order_grid sfog
ON sfog.entity_id = sfo.entity_id
SET sfo.coupon_code = concat(IFNULL(sfo.coupon_code, ""),", SAVE15")
WHERE sfog.increment_id = "12345678";

这是我尝试使用 CONCAT_WS 仅在必要时添加分隔符:

UPDATE sales_flat_order sfo
INNER JOIN sales_flat_order_grid sfog
ON sfog.entity_id = sfo.entity_id
SET sfo.coupon_code = CONCAT_WS(',',IFNULL(sfo.coupon_code, ""),"SAVE15")
WHERE sfog.increment_id = "12345678";

我一开始以为它可以工作,但后来它将“,SAVE15”插入到空字段中。我相信第二个查询是正确的方法,但我似乎使用不正确。

最佳答案

Concat_WS 的文档告诉我们,它将跳过任何 Null 字段,但不会跳过空字符串。因此,您必须删除对 IfNull(sfo.coupon_code, "") 的调用,该调用会将 Null 值转换为空字符串。

关于MySQL CONCAT : Add a comma/separator only when field is NOT NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26149576/

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