先看结论:
SELECT @rowNum:=@rowNum + 1 AS '行号',a.* FROM tableName a,(SELECT @rowNum:=0) b
然后逐步解析
我们假设有一张这样的表Teacher,里面有4条数据如下
SELECT @rowNum:=0;
结果只有一个常数0
因为@rowNum:=0的意思是声明了一个叫rowNum的变量并赋值为0
SELECT b.*,a.* FROM Teacher a,(SELECT @rowNum:=0) b;
这是最简单的两表连接,由于b表只有一条数据,那么结果就如图上所示,拿b表的唯一的数据0,和a表中的4条数据挨个组合就行了
SELECT @rowNum:=@rowNum + 1 AS '行号',a.* FROM Teacher a,(SELECT @rowNum:=0) b;
原文链接:https://blog.csdn.net/lili625/java/article/details/80252420