总而言之,我有一个更新查询,它将把一串数据(例如SAVE15)添加到现有字段。目前,我预计此字段已经包含一些信息,因此我的值将附加为“,SAVE15”,这是一个逗号和空格分隔符。这暂时有效但很快我预计只有在字段为NOT NULL时才需要插入逗号和空格。如果它为null,我需要它插入“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”插入到空字段中。我相信第二个查询是正确的方法,但我似乎错误地使用它。
答案 0 :(得分:1)
Concat_WS
的文档告诉我们它将跳过任何Null字段但不会跳过空字符串。因此,您必须删除将{Null值转换为空字符串的IfNull(sfo.coupon_code, "")
调用。