8

我正在使用 MySQL。我有一个表,我需要能够手动排序设置行的优先级/顺序。我最初想为每一行分配一个任意顺序(1、2、3 等),然后只是“交换”与移动的行的顺序,但我认为这不是最好的方法。

在阅读了一些相关问题之后(比如这个),很多人说要根据 id 列(id * 1000)为优先级列分配一个值。要重新排列行,您将除/减列之间的差异。我不太明白这是如何工作的。

这是我需要排序的表格布局。

CREATE TABLE liability_detail (
   id int NOT NULL AUTO_INCREMENT,
   analysis_id int NOT NULL, //(many-to-one relationship with analysis table)
   other_columns various datatypes
   sequence int DEFAULT 0
)

我想设置一种简单的方法来管理行的优先级,这样我就可以轻松地对它们进行排序,而无需编写大量代码来管理所有内容。

4

1 回答 1

4

我最终遵循了这个问题的建议:https ://stackoverflow.com/a/6804302/731052

我设置了排序顺序列 = id * 1000,所以我可以获得唯一的订单。到目前为止,这工作得很好,并且没有任何问题。

于 2012-07-24T02:04:38.090 回答