【发布时间】:2017-01-13 13:40:15
【问题描述】:
如何从数组中更新表字段以避免临时表使用? 用户将数组传递给重新排序表。
create TABLE items
(
id serial primary key,
name text,
select_order int
)
insert into items(name, select_order)
values
('cucumber',0),
('milk',1),
('coffee',2),
('water',3)
select * from items order by select_order;
DO
$body$
DECLARE var_array int[]:='{3,0,2,1}';
BEGIN
update items ??
END;
$body$
这个例子的最终结果应该是
select * from items order by select_order;
name select_order
------------------------
water 0
cucumber 1
coffee 2
milk 3
【问题讨论】:
-
可以更具体一点吗?如何希望
update发生?我无法从您的问题中弄清楚,var_array只是integers 的列表。 -
输入数组中的索引是对应的旧位置。正如我从下面的答案中看到的那样,“序数”是正确的方法
标签: postgresql