次のようなソートインデックスを持つ選択範囲に多数の行があります
ID text date sort_index
43 ABC 2013-05-28 3
93 DEF 2013-05-28 14
12 ABC 2013-05-28 103
[...]
sort_index
ここで、 の番号を 0 から 2に変更したいと思います。グループ要素はdate
です。MySQL を使用してそれを行うにはどうすればよいですか?
これを試してみてください。ただし、まだすべてのケースでテストされているわけではありません。
UPDATE tbltest SET sort_index =
(
SELECT COUNT(*) FROM (
SELECT * FROM tbltest
) AS dup
WHERE dup.`date` = tbltest.`date` AND
dup.sort_index < tbltest.sort_index
)
このサイトをチェックしてください。
あなたの場合、次のようになります。
mysql> SET @ordering_inc = 1;
mysql> SET @new_ordering = -1;
mysql> UPDATE YOUR_TABLE SET
sort_index = (@new_ordering := @new_ordering + @ordering_inc)
WHERE date = '2013-05-28'
ORDER BY sort_index ASC;
未検証!