如何对mySQL数据库中某些特定字段进行排序?
例如,对下表中,以日期为索引进行降序排列,金额随日期顺序的改变而改变。ID、商品等字段内容不参与排序,顺序不变。需要在排序后,数据库中的内容都随之相应调整。而不是仅仅显示...
例如,对下表中,以日期为索引进行降序排列,金额随日期顺序的改变而改变。ID、商品等字段内容不参与排序,顺序不变。
需要在排序后,数据库中的内容都随之相应调整。而不是仅仅显示出来就完了。
不胜感谢! 展开
需要在排序后,数据库中的内容都随之相应调整。而不是仅仅显示出来就完了。
不胜感谢! 展开
展开全部
set @count=0;
update tb t1, (select @count:=@count+1 as `count` , `日期`,`金额` from tb order by `日期` desc) t2 set t1.`日期`=t2.`日期`, t1.`金额`=t2.`金额` where t1.`ID` = t2.`count`;
update tb t1, (select @count:=@count+1 as `count` , `日期`,`金额` from tb order by `日期` desc) t2 set t1.`日期`=t2.`日期`, t1.`金额`=t2.`金额` where t1.`ID` = t2.`count`;
更多追问追答
追问
非常感谢,可是看不懂哦。@count作用是什么?tb t1 t2分别是什么意思?select @count:=@count+1 as `count` 这句话是什么意思?
追加到200了。搞明白后再追加50。多谢啦!
追答
因为我不知道你的表名,所以我用tb代替,@count是自定义变量,用于记录排序后的序列号的,
tb t1的意思是说为tb表取别名t1, select @count:=@count+1 as `count` 。。。这句是想查询出排序后的结果集,并且结果集中添加了新列,`count`,也就是排序后的序列号,as表示@count的值在新列`count`中,t2就是得到的结果集的别名,相当于一个临时表,有三个字段,`count`,`日期`,`金额`,都是按照日期降序排列过的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询