Abs*_*Abs 6 mysql sql mysql-json
我在表中有一列以格式存储:
{"field1":"val1","field2":"val4"}
{"field1":"val2","field2":"val5"}
{"field1":"val3","field2":"val6"}
Run Code Online (Sandbox Code Playgroud)
我需要删除所有field1的值(例如"field1":"val1","field1":"val2","field1":"val3"),结果应该是
{"field2":"val4"}
{"field2":"val5"}
{"field2":"val6"}
Run Code Online (Sandbox Code Playgroud)
我试图通过替换实现这个,但卡在'"field1"中:"val1"'字符串val1可以是任何值,如null,某个整数.
UPDATE emp SET col = REPLACE(col, '"field1":"val1"', '')
Run Code Online (Sandbox Code Playgroud)
由于val1的动态值,我陷入困境.
Eri*_*oie 15
我更喜欢使用JSON_REMOVE函数(MySQL):
UPDATE emp
SET emp.col = JSON_REMOVE(emp.col, '$.field1');
Run Code Online (Sandbox Code Playgroud)
您还可以添加WHERE子句:
WHERE emp.col LIKE '%val6%';
Run Code Online (Sandbox Code Playgroud)
参考: MySQL JSON_REMOVE和MySQL JSON路径
一篇博客文章,带有示例: MySQL为您的JSON
关于MySQL中的json路径的注释:
如果属性标识符包含interpunction(空格,特殊字符,元字符)bugs.mysql.com,则路径中的属性名称必须加双引号.
| 归档时间: |
|
| 查看次数: |
3951 次 |
| 最近记录: |