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
我正在尝试在 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