1
カスタム表示順序レコードを制御するために使用される整数フィールドを持つテーブルがあります。行番号に基づいてテーブルを更新します。
例:
SET @rownumber = 0;
SELECT
@rownumber:[email protected]+1 AS rownumber,
slides.displayorder
WHERE
active = 1
ORDER BY displayorder ASC
このクエリは私に少しこのような結果を与える:
rownumber | displayorder
-----------+-------------
1 2
2 7
3 15
4 50
5 80
レコードが/未承認(表示順で、したがって、ギャップを)削除されるまで、これがOKに動作します。
私がしたいのは、レコードが削除された後にdisplayorder
列をrownumber変数の値に設定する更新クエリを実行することです。このような結果与える
:
rownumber | displayorder
-----------+-------------
1 1
2 2
3 3
4 4
5 5
はこれを行う簡単な方法はありますか?
なぜギャップが重要ですか?注文は削除時に保存されます。確かに、挿入/更新時に「巧妙」な何かをするだけです。 – briantyler
トリガーの使用に慣れていますか?削除によって引き起こされる更新は、あなたが探しているものを行います。つまり、エントリを並べ替える戦略については興味があります。ユーザーは#2と#3の間に行#5が表示されるように指定できますか? –
このトリック(SELECT @ var:= @ var + 1 ..)はMySqlで動作しますか? – RBarryYoung