我需要删除表
money
中第 inventory
列中名为 users
的数据。
数据存储在LONGTEXT
中,存储方式如下:
[{"slot":1,"count":2,"metadata":[],"name":"clip"},{"slot":2,"count":1,"metadata":[],"name":"money"}]
在此示例中,我需要将上述数据更改为:
[{"slot":1,"count":2,"metadata":[],"name":"clip"}]
我很感激任何对我的问题的回答。
我尝试使用:
UPDATE users
SET inventory = JSON_REMOVE(inventory, '$.[?(@.name == "money")]');
但是这段代码删除了整个 JSON 并得到了 NULL 指针。
SET @j='[{"slot":1,"count":2,"metadata":[],"name":"clip"},{"slot":2,"count":1,"metadata":[],"name":"money"}]';
SELECT JSON_REMOVE(
@j,
substring_index(
JSON_UNQUOTE(JSON_SEARCH(@j, 'one', 'money', NULL, '$[*].name')),
'.', 1
)
) AS result