日期:2014-05-17  浏览次数:21215 次

mysql里面如何实现int类型自动加1?
我现在需要做两种报名表单。一种是单人的,一种是双人的。
其中双人的报名表单需要拥有相同的报名编号。
例如有A B C D E五个人报名,其中C为单人报名,AB  DE为双人报名。那么我想实现的结果是这样的:
ID    报名编号   名字    其他字段……
1          1            A
2          1            B
3          2            C
4          3            D
5          3            E
类似这样。
我希望报名编号能实现自动添加1。 不知道能否实现?


------解决方案--------------------
AUTO_INCREMENT可以实现自动递增,但是是每增加一个记录都会递增。像楼主这个,最好从程序上解决,数据库里不太好办吧。
------解决方案--------------------
没注意看 说明

我说咋不像自增

这个 我想 MYSQL里没有一个标识可以实现这样的功能

要嘛在存储过程或在程序里面做了

程序里我觉得很容易也很方便
------解决方案--------------------
MYSQL实现分组排序( row_number()over()功能 )
drop table if exists tb;
create table tb(col1 int,col2 int);
insert tb
select 1,2 union all
select 1,3 union all
select 1,4 union all
select 2,9 union all
select 2,7 union all
select 2,8 union all
select 3,1 union all
select 3,6;

select  *
from
 ( select
      a.*,
      @rownum:=@rownum+1 as 序号, 
      if(@pdept=a.col1,@rank:=@rank+1,@rank:=1) as 排名, @pdept:=a.col1  
    from
      (select * from tb order by col1 asc ,col2 desc ) a ,(select @rownum :=0 , @pdept := null ,@rank:=0)b)result;  
/*
Col1  col2 序号 排名 
1 4 1 1 1
1 3 2 2 1
1 2 3 3 1
2 9 4 1 2
2 8 5 2 2
2 7 6 3 2
3 6 7 1 3
3 1 8 2 3

*/


是这个意思吗?