首页 > 教程攻略 > ai教程 >mysql中实现行号,oracle中的rowid

mysql中实现行号,oracle中的rowid

来源:互联网 时间:2026-06-12 07:21:08

MySQL 里没有像 Oracle 那样原生的 rownumrowid,要实现行号功能,就得借助变量来手动模拟。这算是不少从 Oracle 转过来的开发者刚接触 MySQL 时容易踩的一个坑——但解法其实很直接。

mysql中实现行号,oracle中的rowid

变量在 MySQL 中可以用 set @var = 0 或者 set @var := 0 来定义,两种写法都行。但一旦变量出现在 select 语句里,就必须用 := 赋值——因为这时候 = 会被解析成比较运算符,而不是赋值,结果就不对了。

一个典型写法是这样的:

select @rownum:=@rownum + 1 as rownum, b.* 
from (select @rownum:=0) a, b

这个技巧在需要取排名、分批读取数据时特别实用,比如想找出第几名到第几名的记录,靠它就能轻松搞定。