gpt4 book ai didi

带有多数组的 MySQL JSON_REMOVE

转载 作者:行者123 更新时间:2023-12-04 08:37:25 25 4
gpt4 key购买 nike

我将以下 JSON 文档存储在名为 my_data 的 MySQL 8 列中:

{
"managers": {
"11": {
"created": "2019-11-07"
},
"12": {
"created": "2020-03-12"
},
}
}
如何删除“11”信息。
UPDATE table SET my_data = JSON_REMOVE(my_data, ??) WHERE id = 1;

最佳答案

首先,您显示的数据不是有效的 JSON。我认为应该是以下内容:

{
"managers": {
"11": {
"created": "2019-11-07"
},
"12": {
"created": "2020-03-12"
}
}
}
我设置了一个变量,所以我可以用它来测试:
mysql> set @j = '...json above...';
我试过这个,但它不喜欢使用整数作为路径键:
mysql> select json_remove(@j, '$.managers.11');
ERROR 3143 (42000): Invalid JSON path expression. The error is around character position 13.
所以我将 key 引用为 "11" :
mysql> select json_remove(@j, '$.managers."11"');
+-------------------------------------------------+
| json_remove(@j, '$.managers."11"') |
+-------------------------------------------------+
| {"managers": {"12": {"created": "2020-03-12"}}} |
+-------------------------------------------------+

但我真的会这样做:
DELETE FROM managers WHERE manager_id = 11;
也就是说,根本不要使用 JSON。为 managers 创建一个表,以 11 或 12 个值作为主键。
在 MySQL 中使用 JSON 只会使编写代码变得更加困难,而且效率更低。这是什么 Inner-Platform Effect antipattern都是关于。

关于带有多数组的 MySQL JSON_REMOVE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64735038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com