SSM框架+MySQL使用伪列
在查询数据库的时候,我们有时候需要对查询出来的数据加上序列,1,2,3,……n,oracle数据库有专门的rownum来解决伪序列问题,但是mysql却到目前为止还没有内置的函数等来解决此问题
那么我们使用MySQL的时候,如何为数据添加伪列呢?
首先我们可以设置一个变量 @rownum
SET @rownum:=0;
接下来就可以在查询方法中让变量自增1
SELECT @rownum:=@rownum+1 AS rownum,a.* FROM user a;
但是在SSM中总不能同时发送两条SQL语句给MySQL吧,那么该怎么将这两句SQL语句合并在一起呢。我们可以使用嵌套查询
SELECT @rownum:=@rownum+1 AS rownum, user.* FROM (
SELECT @rownum:=0
) r, user
先写一个select初始化@rownum
,接下来在外层查询sql中对@rownum进行自增1
,得到的结果与刚才是一样的
接下来还有一个问题,由于SSM的 SQL语句是写在.xml
文件中,【:】
和【=】
需要进行转义,否则MySQL将无法识别。
SELECT @rownum/*'*/:=/*'*/@rownum+1 AS rownum, user.* FROM (
SELECT @rownum/*'*/:=/*'*/0
) r, user