1

次のようなソートインデックスを持つ選択範囲に多数の行があります

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 を使用してそれを行うにはどうすればよいですか?

4

2 に答える 2

2

これを試してみてください。ただし、まだすべてのケースでテストされているわけではありません。

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
)
于 2013-05-29T16:25:43.750 に答える
1

このサイトをチェックしてください。

あなたの場合、次のようになります。

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;

未検証!

于 2013-05-29T16:10:14.413 に答える