gpt4 book ai didi

mysql - 维护/更新mysql中的记录顺序

转载 作者:行者123 更新时间:2023-11-29 01:10:56 28 4
gpt4 key购买 nike

我在 mySql 中有一个记录表。我需要按照用户指定的方式为它们维护订单。所以我添加了一个“位置”列。

当我移动特定记录时更新所有记录的 SQL 语句是什么?我有类似的东西:

UPDATE items SET position = '2' WHERE id ='4';
UPDATE items SET position = position+1 WHERE position >= '2' AND id != '4';

但是如果记录向下移动,则大于将小于。有什么窍门?谢谢!

最佳答案

像这样的东西可以吗?

UPDATE items 
SET position = CASE position
WHEN $oldpos THEN $newpos
ELSE position + SIGN($oldpos-$newpos)
END
WHERE position BETWEEN LEAST( $newpos, $oldpos )
AND GREATEST( $newpos, $oldpos );

我测试了几次,它似乎有效。

关于mysql - 维护/更新mysql中的记录顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/481789/

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