修复 json 数据意外双重编码
Fixing json data accidentally double encoded
由于在使用已经自动将 objects/arrays 转换为 json.
示例:
"{\"created\":true,\"amount\":\"9.95\",\"number\":\"1381329132\",\"date\":{\"date\":\"2019-11-11 00:00:00.000000\",\"timezone_type\":3,\"timezone\":\"UTC\"}}"
我将如何构建修复查询以根据其中已有的字符串数据将列更新为实际的 json 对象?
MySQL 5.7
注意:这与从 select 语句中的 table 中提取的数据完全相同,并不代表将添加到 [=29= 中的值] 陈述。如果它打算在 SQL 语句中使用,那么它不会被视为双重编码。
您可以为此使用 JSON_UNQUOTE:
update yourtable set yourcolumn=json_unquote(yourcolumn) where yourcolumn like '"%';
https://dbfiddle.uk/?rdbms=mysql_5.7&fiddle=54e11ad53fb30d967c325445d0e08874
由于在使用已经自动将 objects/arrays 转换为 json.
示例:
"{\"created\":true,\"amount\":\"9.95\",\"number\":\"1381329132\",\"date\":{\"date\":\"2019-11-11 00:00:00.000000\",\"timezone_type\":3,\"timezone\":\"UTC\"}}"
我将如何构建修复查询以根据其中已有的字符串数据将列更新为实际的 json 对象?
MySQL 5.7
注意:这与从 select 语句中的 table 中提取的数据完全相同,并不代表将添加到 [=29= 中的值] 陈述。如果它打算在 SQL 语句中使用,那么它不会被视为双重编码。
您可以为此使用 JSON_UNQUOTE:
update yourtable set yourcolumn=json_unquote(yourcolumn) where yourcolumn like '"%';
https://dbfiddle.uk/?rdbms=mysql_5.7&fiddle=54e11ad53fb30d967c325445d0e08874