gpt4 book ai didi

mysql - 使用 x=x+1 值更新 mysql 中的 20 行?

转载 作者:可可西里 更新时间:2023-11-01 08:38:07 25 4
gpt4 key购买 nike

在 mysql 中,我有一个大约有 20 行的表(示例)。我想将排序顺序(它在携带 picID 的数组中)从 1 到 x(x 是本例中的项目数 x=20)写入 SORT 列。

我的数组开始于:[10,15,1...]

我能做到:

UPDATE table SET sort=1 WHERE picID=10
UPDATE table SET sort=2 WHERE picID=15
UPDATE table SET sort=3 WHERE picID=1

...

直到 20...

但这对 mysql 表进行了 20 次更新...

有没有可能以更有效的方式做到这一点?

杰瑞

最佳答案

处理这个问题的一种方法是使用临时表:

CREATE TABLE tmp_sort (id INT, sort_order INT);
INSERT INTO tmp_sort VALUES (10, 1), (15, 2), (1,3);

UPDATE table, tmp_sort
SET table.sort = tmp_sort.sort_order
WHERE tmp_sort.id = table.picID;

另一种使用控制流的方式:

UPDATE table 
SET sort = CASE picID
WHEN 10 THEN 1
WHEN 15 THEN 2
WHEN 1 THEN 3
ELSE sort END

注意末尾的 ELSE。如果你没有它,它会将其他所有内容设置为空白!

关于mysql - 使用 x=x+1 值更新 mysql 中的 20 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3514401/

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