我现在有一个投票的表,这个表里面有投票的票数,这里面已经有了数据,现在我要增加一个名次的字段,现在我要通过什么处理可以让名次这里面的数据和票数对应。
先增加名次列,然后按票数排序select* from tb order by ticket_num,外围加个set语句循环更新名字列
在投票的时候,票数在变动,怎么根据票数列自动去把名次设置好
@明天会更好yao: 这样效率岂不是很低,每有一个人投票一次,你就得把整个表来排个名。还设计多个用户同时投票的对你排名的异常。
你的字段里面已经有了票数字段。以后要获得排名,直接按照这个票数排序查询出结果不就行了吗。多设置一个名次字段,数据冗余了嘛
对呀,在获取数据的时候按照票数排序就好了呀.效率和冗余的问题
嗯
根据排名函数,取出排名,然后
update t1 set t1.rank=t2.rownum from (select rownum=row_number() over(order by ticket_num desc) from t1) t2 where t1.id=t2.id
三种排序函数,依需求决定可以解决问题