暂无图片
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
打赏 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
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
MySQL表,在考虑增删的情况下,建立多少个普通索引最优?
回答 1
已采纳
建议不超过5个。
mysql 5.7升8.0 排序规则自动变成了 utf8mb4_0900_ai_ci,导入数据库的时候能指定排序规则吗?
回答 1
不可以指定。排序规则只能是表创建的时候指定
mysql 8.0中加密的binlog,如何用mysqlbinlog解析?
回答 1
可以手动解密,参考:https://dev.mysql.com/blogarchive/howtomanuallydecryptanencryptedbinarylogfile/!/usr/bin/e
mysql备份策略一般用mysqldump吗?
回答 2
建议看看小墨的这篇文章,《MySQL备份方式》https://www.modb.pro/doc/1177
mysql获取一个实例下的库名,除了show databases之外,还有哪些方法?
回答 5
获取表列表SELECTTABLENAME,TABLECOMMENTFROMinformationschema.tables;获取字段列表SELECTCOLUMNNAME,COLUMNCOMMENTfr
线上的环境下,执行optimize table z1 ;alter table z1 engine=innodb ,analyze table z1,这3个语句执行的时候,会阻塞dml吗?
回答 1
执行optimizetablez1;和altertablez1engineinnodb 这两种操作会对表进行重建,对表结构以及表数据都会有更改,这个时候会有表级别的排它锁,阻塞其他会话对表的
怎么样使用提示 让MYSQL 8.0 使用嵌套循环?
回答 2
每个版本的hint不一样8.0.18,8.0.19,及以后版本。在这块mysql改动较大。8.0.19及以后,可以用/NOBNL()/就可以实现/NOHASHJOIN/这个hint只有在8.0.18版
Impossible where noticed after reading const tables
回答 4
mark
MySQL 用于产品环境,应该如何选用版本?
回答 1
目前来说8出来2年多了,可以使用8.毕竟还没有9.其他的已经或者马上没有支持了。
MySQL 8 忘记密码,如何修改密码
回答 3
已采纳
在配置文件中打开 skipgranttables跳过数据库权限验证