-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 句を使用して、フィールド 'order' に基づいて並べ替えることができます。私が本当にやりたいのは、投稿 2 の順序を 4 に変更するときです。残りの行を自動的に並べ替えるメカニズムはありますか。

4

1 に答える 1

3

ORDER BYデータベースのorderフィールドだけだと思いますか?


あなたの質問をよく理解できたので、これはどうですか:orderフィールドに 10 で番号を付けてください ( 1020など30)。次に、順序を変更したい場合は、番号を調整します (たとえば、 に変更1025て と の間に配置し20ます30)。並べ替えが完了したら、次を実行します。

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