当前位置:   article > 正文

mysql行号_mysql改变当前行号

mysql改变当前行号

先看结论: 
SELECT @rowNum:=@rowNum + 1 AS ‘行号’,a.* FROM tableName a,(SELECT @rowNum:=0) b

然后逐步解析

我们假设有一张这样的表Teacher,里面有4条数据如下 


先看这条sql

SELECT @rowNum:=0;



结果只有一个常数0 
因为@rowNum:=0的意思是声明了一个叫rowNum的变量并赋值为0

然后看这条sql

SELECT b.*,a.* FROM Teacher a,(SELECT @rowNum:=0) b;


这是最简单的两表连接,由于b表只有一条数据,那么结果就如图上所示,拿b表的唯一的数据0,和a表中的4条数据挨个组合就行了

OK,我们离最终的解决方案很近了 
那就是这条sql

SELECT @rowNum:=@rowNum + 1 AS '行号',a.* FROM Teacher a,(SELECT @rowNum:=0) b;



对比上一条sql,会发现b.*变成了@rowNum:=@rowNum + 1,推演一下两表连接过程: 
1.a表拿出第一条数据(1,’叶平’),@rowNum:=@rowNum + 1的意思是对rowNum这个变量+1并赋值给rowNum。还记得rowNum最初被赋值为多少么?没错,0,因此这里rowNum就变成了1,第一行结果就变成了(1,1,’叶平’) 
2.a表拿出第二条数据(2,’贺高’),@rowNum:=@rowNum + 1执行后rowNum就变成了2,第二行结果就是(2,2,’贺高’) 
…… 
嗯,不再赘述,就是这样。利用自定义的变量作为一个桥梁,在表连接过程中每行加一,就得到了行序号。
 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/672503
推荐阅读
相关标签
  

闽ICP备14008679号