暂无图片
mysql单纯的显示行号@rownum := @rownum + 1已经可以实现了,然后这个带行号的查询结果我要根据条件筛选一些记录,把这些记录抽出来的时候我还要保存之前他们的行号,怎么操作?
我来答
分享
不是小熊
2021-09-18
mysql单纯的显示行号@rownum := @rownum + 1已经可以实现了,然后这个带行号的查询结果我要根据条件筛选一些记录,把这些记录抽出来的时候我还要保存之前他们的行号,怎么操作?

直接把带行号的记录括起来再对其select加where条件后搜出来的结果没有保存之前的行号信息,而是按照新的行号算了

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
有教无类
mysql> select * From (select @rownum:=@rownum+1 as rn,empno,ename from emp,(select @rownum:=0)b limit 1000)a where empno = 7839;
+------+-------+-------+
| rn   | empno | ename |
+------+-------+-------+
|    9 |  7839 | KING  |
+------+-------+-------+
1 row in set, 2 warnings (0.00 sec)



暂无图片 评论
暂无图片 有用 0
chengang

子查询。再套一套就可以了。

select *from ( select @rownum := @rownum + 1 as rowno,oldrowno from ( select 100 oldrowno union all select 200 union all select 300 ) as t ,(select @rownum:= 0) as t1 ) as t2 where t2.rowno >= 2

rowno oldrowno
2 200
3 300

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏