gpt4 book ai didi

行的 SQL 批量重新排序

转载 作者:行者123 更新时间:2023-12-04 17:28:53 25 4
gpt4 key购买 nike

我有一个包含记录列表的表和一个名为 order 的列。我有一个 AJAX 脚本来向上或向下拖放表行,我想用它来执行查询,在行被拖动时重新排序。

在 PHP 中,我执行查询以获取记录的当前顺序。例如 1, 2, 3 ,4
AJAX 函数在拖放完成后传递新的订单,例如 3, 1, 2, 4

有没有一种简单的方法可以根据新值一次性重新排序记录?我能看到的唯一其他选择是循环遍历 UPDATE 语句,例如 SET order = 1 where order = 3

但这肯定会导致 2 条记录具有相同的值吗?

抱歉,我知道这个描述可能有点令人困惑。

最佳答案

订单不应该是你的主键;使用 where 子句中的主键进行更新。

如果您真的愿意,您可以使用相当长的 CASE 语句在一个查询中完成所有操作。例子:

UPDATE foo
SET order = CASE order
WHEN 1 THEN 2
WHEN 2 THEN 3
WHEN 3 THEN 4
WHEN 4 THEN 5
END
WHERE order IN (1,2,3,4)

(请记住,SQL 语句的行为就像它们同时更改所有值一样,因此不会执行类似将 1 更改为 2,然后更改为 3 等的操作。)

关于行的 SQL 批量重新排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1393815/

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