MySQL CONCAT之后添加逗号

时间:2017-03-31 04:42:01

标签: php mysql

我很难在值之后获得逗号,但此查询在值

之前添加
ipaddress = CONCAT(IFNULL(ipaddress,''), ',$ipaddress')

该字段的默认值为NULL

即使我也试过这个,但结果是一样的。之前添加逗号。

ipaddress = CONCAT(IFNULL(ipaddress,''), ',', '$ipaddress')

2 个答案:

答案 0 :(得分:2)

使用CONCAT_WS功能。它在项之间插入分隔符,但忽略空项。

ipaddress = CONCAT_WS(',', ipaddress, '$ipaddress')

因此,如果ipaddress最初为null,则会被忽略,因此不会将分隔符放在它与添加的$ipaddress值之间。

但是,您需要执行此操作表明您将逗号分隔列表放入SQL列。这是非常糟糕的设计。您应该规范化您的架构,并将其移动到一个单独的表中,每个值都有一个单独的行,以及一个与该表相关的外键。

答案 1 :(得分:0)

如果ipaddressNOT NULL,则字符串格式正确。

E.g. 127.0.0.1,127.0.0.2

如果ipaddress IS NULL,字符串将显示为

,127.0.0.2

您可以使用MySQL的TRIM功能来解决此问题。

 TRIM(LEADING ',' FROM CONCAT(IFNULL(ipaddress,''), ',', '$ipaddress'))
 TRIM(LEADING ',' FROM CONCAT(IFNULL(NULL,''), ',', '127.0.0.2'))

希望这有帮助!