Mysql 如何删除最后出现的逗号,逗号本身可能不是SQL中字符串的最后一个字符
表结构如下所示:-Mysql 如何删除最后出现的逗号,逗号本身可能不是SQL中字符串的最后一个字符,mysql,sql,regex,replace,Mysql,Sql,Regex,Replace,表结构如下所示:- mysql> select * from formjson; +----+---------------------------------------------------------+ | id | jsonData | +----+---------------------------------------------------------+ | 1 | {"721005":"N
mysql> select * from formjson;
+----+---------------------------------------------------------+
| id | jsonData |
+----+---------------------------------------------------------+
| 1 | {"721005":"NO","720931":"1156","720940":"aegiseng",} |
| 2 | {"721005":"NO","720931":"1156","720940":"aegiseng",} |
| 3 | {"721005":"NO","720931":"50253","720940":"d1-gateway",} |
| 4 | {"721005":"NO","720931":"11102","720940":"uxinfra",} |
| 5 | {"720931":"1152","720940":"zappops-notify",} |
+----+---------------------------------------------------------+
5 rows in set (0.00 sec)
我想删除jsonData中最后出现的逗号,即,}'到'}'
我试过了
mysql> update formjson set jsonData=CONCAT(TRIM(TRAILING ',}' FROM jsonData),'}') where jsonData like '%,}';
以上是工作
但在MySQL中,是否有其他方法可以使用regexp用户定义函数等实现此目的?请尝试:
UPDATE formjson SET jsonData=REPLACE(jsonData, ',}', '}') WHERE jsonData LIKE '%,}'
CONCAT(TRAILING,'}')
而不是CONCAT(TRAILING,',}')`应该这样做。@Gordon Linoff不明白它是如何做到的。