select @aaa:=@aaa+1 as rownum,t1.* from table_name t1,(select @aaa:=0) t;
我们一般写行号的时候一般是rowno或者rownum,但是为了证明mysql的伪序号和名字无关,所以用了@aaa,初始值是(select @aaa:=0) t,如果@aaa:=100,那么序号从101开始,所以想要从0开始的要初始值设置成-1。有一个不理解的地方,如果没有(select @aaa:=0) t这一部分,也能执行,不过序号就跟翻页一样,只能向上增加,比如第一次查询1到100,下次再查询是101开始。@aaa是全局变量,如果不赋值初始值,那么所有sql都会在同一个@aaa当前值累加。
结论:
1.@aaa是全局变量,且可以自己起名字,也可以看做是定义变量
2.使用的时候一定要赋初始值 (select @aaa:=0) t,从1开始
3.赋值方法用":="
4.仅仅是自己的理解,也是为了记录才写的,没有任何章法,有用就看看,没用的也不用喷