如何通过为每个键值对添加大括号来更新目标字符串?
实现数组内键值对添加大括号的更新语句
假设你使用MySQL数据库,可借助字符串函数实现需求,以下是具体更新语句示例:
UPDATE 你的表名 SET 目标字段 = CONCAT( '[{', REPLACE(TRIM(BOTH '[]' FROM 目标字段), ',', '},{'), '}]' ) WHERE 目标字段 REGEXP '^\\[\\d+:(true|false)(,\\d+:(true|false))*\\]$';
语句说明:
TRIM(BOTH '[]' FROM 目标字段):移除字段值首尾的方括号REPLACE(..., ',', '},{'):将键值对之间的逗号替换为},{CONCAT('[{' , ... , '}]'):在首尾拼接[{和}],生成最终格式WHERE子句:过滤符合原格式的字段,避免误改其他数据
效果验证:
原字段值:
[8254589:false,1956027:false,46523678:false]
执行语句后变为:
[{8254589:false},{1956027:false},{46523678:false}]
若使用其他数据库,可调整对应字符串函数:
- PostgreSQL:使用
trim()、regexp_replace()函数 - SQL Server:使用
TRIM()、REPLACE()函数
内容的提问来源于stack exchange,提问作者Runtime Terror
相关产品推荐
相关产品推荐

