我的阵列jsonb
元件( jsonb[]
中,用ID和文本。 要删除我可以用一个元素:
UPDATE "Users" SET chats = array_remove(chats, '{"id": 2, "text": "my message"')
但我想只要按ID删除消息,原因得到消息将花了我另一个查询。
我的阵列jsonb
元件( jsonb[]
中,用ID和文本。 要删除我可以用一个元素:
UPDATE "Users" SET chats = array_remove(chats, '{"id": 2, "text": "my message"')
但我想只要按ID删除消息,原因得到消息将花了我另一个查询。
假设丢失的信息:
user_id
。 id = 2
在整个表。 id
是的每个阵列内是唯一的chats
。 UPDATE "Users" u
SET chats = array_remove(u.chats, d.chat)
FROM (
SELECT user_id, chat
FROM "Users", unnest(chats) chat
WHERE chat->>'id' = '2'
) d
WHERE d.user_id = u.user_id;
以下的说明中的相匹配的问题所提供的信息的程度: