mysql给列加序号


select @row_id:=@row_id+1 as ID,a.America from 
(select  name as America from  student  where continent='America' order by America asc) a ,
(select @row_id:=0) b  


1.首先定义一个变量并初始化为0。 @row_id:=0
定义的形式为 select @row_id:=0

然后将这张表和自己要查的表一块 查,查询的时候将变量增长1

也就是 select @row_id:=@row_id+1,x列 from
() a, (select @row_id:=0) b

注意! 如果是想通过生成的序号来做关联,
两张表的序号变量不能是同一个!
这里用了@row_id, @row_id2 ,@row_id3 三个自定义变量
如果三张表使用同一个的结果就是 @row_id:=@row_id+1 每一行都被执行三次,这样生成的序号三张表是不一样的

select a1.America,a2.Asia,a3.Europe from 
(select @row_id:=@row_id+1 as ID,a.America from 
(select  name as America from  student  where continent='America' order by America asc) a ,
(select @row_id:=0) b )  a1 
 left join 
(select @row_id2:=@row_id2+1 as ID,a.Asia from 
(select  name as Asia from  student  where continent='Asia' order by Asia asc) a ,
(select @row_id2:=0) b )  a2 on a1.ID=a2.ID 
 left join 
(select @row_id3:=@row_id3+1 as ID,a.Europe from 
(select  name as Europe from  student  where continent='Europe' order by Europe asc) a ,
(select @row_id3:=0) b )  a3  on a1.ID=a3.ID


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值