mysql将组内的保存顺序保存到子表
我有一个包含多组记录的表,我想在表中保存这些记录的顺序,例如mysql将组内的保存顺序保存到子表,mysql,Mysql,我有一个包含多组记录的表,我想在表中保存这些记录的顺序,例如 ========================== group_id | bid | rank ========================== 1 | 10 | ? 1 | 12 | ? 2 | 4 | ? 2 | 5 | ? 2 | 3 | ? =======================
==========================
group_id | bid | rank
==========================
1 | 10 | ?
1 | 12 | ?
2 | 4 | ?
2 | 5 | ?
2 | 3 | ?
==========================
是否有一些查询可以用来保存上表中的排名和出价顺序,从而使结果成为
==========================
group_id | bid | rank
==========================
1 | 10 | 1
1 | 12 | 2
2 | 4 | 2
2 | 5 | 3
2 | 3 | 1
==========================
您可以使用相关子查询来获得所需的排名
update demo a
join (
select a.group_id,a.bid,
(select count(distinct bid)
from demo
where a.group_id = group_id
and a.bid > bid) + 1 rank
from demo a
) b using(group_id,bid)
set a.rank = b.rank
或者,如果你只是想选择它,你可以使用它
select a.group_id,a.bid,
(select count(distinct bid)
from demo
where a.group_id = group_id
and a.bid > bid) + 1 rank
from demo a
可能存在的副本