MariaDb 中的 JSON:删除数组中具有特定值的元素

问题描述 投票:0回答:1

目前我正在 MariaDB 中使用 JSON 进行第一步。我有一个表“users”,其中有一列“hunde”。此列的类型为 JSON,包含 ID 数组(引用表“hunde”中的元素)。任务很简单:删除该数组中包含特定 ID 的条目。我正在使用 HeidiSQL 进行测试并尝试了这个语句:

UPDATE users SET hunde=JSON_REMOVE(hunde, JSON_SEARCH(hunde, 'one', 33)) WHERE id=2

但是它会抛出一个错误,表明未满足约束。 当我单独查询这个

JSON_SEARCH(hunde, 'one', 33))
时,它会返回正确的选择器。 但是,当我查询嵌套调用的结果时,它返回 NULL。 我做错了什么? 我最终得到了这个解决方法(mysqli),但它有点丑陋而且不直接:
JSON_REMOVE(hunde, JSON_SEARCH(hunde, 'one', 33))

MariaDB的版本是5.5.5-10.4.17-MariaDB

我执行了上面提到的查询,并期望该值被删除,但出现错误。

json mariadb
1个回答
0
投票

本质上: 您需要元素的位置,然后使用 splice 删除该索引。

查找数组,查找其余部分:

如何从具有值的 JSON 对象中获取索引?

希望这有帮助

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.