gpt4 book ai didi

mysql - 更新只知道方向的mysql数字字段

转载 作者:行者123 更新时间:2023-11-30 23:51:02 26 4
gpt4 key购买 nike

我有这样的 mysql 表:id, [.....], priority

优先级字段用于按我的需要对表进行排序。它基于人类的智慧。我有一些值(value)观:

id, priority
1, 1
2, 7
3, 2
4, 4
5, 6
6, 5
7, 3

第二个(最大的)问题:例如,我想根据优先级向上向下移动第四个元素。

第 4 个元素向上(左)和向下(右)移动

    1, 1         1,1
2, 7 2,7
3, 2 3,2
4, 3 4,5
5, 6 5,6
6, 5 6,4
7, 4 7,3

我想用单个 mysql 查询来完成它,因为它是通过 ajax 调用的,我不希望在服务器端执行很多查询。

最佳答案

提高或降低优先级不只是调换优先级吗?这里有一个很好的解决方案:Swap values in 2 rows SQL .这将交换记录 1 和 4 的优先级

UPDATE yourtable AS t1
JOIN yourtable AS t2 ON
(t1.id = 1 AND t2.id = 4)
OR (t1.id = 4 AND t2.id = 1)
SET
t1.priority = t2.priority,
t2.priority = t1.priority

其实,如果你的优先级是唯一的,你可以不使用id,只使用优先级。这将交换优先级 4 和 5:

UPDATE yourtable AS t1
JOIN yourtable AS t2 ON
(t1.priority = 4 AND t2.priority = 5)
OR (t1.priority = 5 AND t2.priority = 4)
SET
t1.priority = t2.priority,
t2.priority = t1.priority

关于mysql - 更新只知道方向的mysql数字字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10548525/

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