我在选择中有许多行,其中包含类似
的排序索引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做到这一点?
答案 0 :(得分: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
)
答案 1 :(得分:1)
查看this网站。
在你的情况下它会是这样的:
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;
未经测试!