-2

我正在写博客,我需要订购/排序方面的帮助。我有一个名为 order 的字段。下面展示了数据库的结构:

id | name       | order
-------------------------
1  | post one   | 5
2  | post two   | 4
3  | post three | 3
4  | post four  | 2
5  | post five  | 1

我可以使用 SQL ORDER BY 子句根据“订单”字段进行排序。我真正想做的是,当我将帖子 2 的顺序更改为 4 时,是否有一种机制可以自动对其余行进行排序。

4

1 回答 1

3

我会假设只是ORDER BY在数据库中的order字段上?


既然我更好地理解了您的问题,那么如何:order以十为单位编号您的字段(102030等等)。然后,当您要更改顺序时,请调整数字(例如,更改1025将其放在20和之间30)。完成重新排序后,运行以下命令:

SET @order = 0;
UPDATE `posts` SET `order` = (@order := @order+10) ORDER BY `order` ASC
于 2012-08-03T20:02:32.010 回答