我在选择中有许多行,其排序索引如下
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;
未测试!