MySQL 中的 Oracle ROWID / ROWNUM

Oracle's ROWID / ROWNUM in MySQL

我正在尝试在 MySQL

上获取此代码的等效项
try(Connection c = DriverManager.getConnection("jdbc:oracle:thin:@myhost:1521:"+ vardbserver, vardbuser, vardbpassword);
      PreparedStatement stmts = c.prepareStatement("SELECT * FROM "+ vardbname +" where ROWNUM > ? and ROWNUM < ? ");
      PreparedStatement max = c.prepareStatement("select max(ROWNUM) as txid from "+ vardbname)
      )

我一直在寻找样本,但我遇到了死胡同。

SELECT * FROM tablename where ROWNUM > ? and ROWNUM < ?

ROWNUM 用于 select 行的子集,即两个值之间的行(不包括)。查询的第一行编号为 1,第二行编号为 2,依此类推。

MySQL 支持 LIMIT 语法,您可以在其中指定所需的行数,以及先获取哪一行:

SELECT * FROM tablename LIMIT offset, row_count

SELECT * FROM tablename LIMIT row_count OFFSET offset

第一行的偏移量为 0 returns。

因此,您可以根据 Oracle 中的两个值计算 MySQL 的两个值。我会把这个计算留给你。

select max(ROWNUM) as txid from tablename

好吧,我以前从未见过这个,但是如果查询返回 10 行,则最大值 ROWNUM 将是 10,因此它与以下内容基本相同:

select count(*) as txid from tablename