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

一意の順序を取得できるように、sort-order column = id*1000を設定しました。これまでのところ、これは非常にうまく機能し、問題はありません。

于 2012-07-24T02:04:38.090 に答える