MySQL中的Oracle ROWID / ROWNUM

时间:2017-05-08 02:56:09

标签: java mysql sql oracle rowid

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

我正在寻找样本,但我死路一条。

1 个答案:

答案 0 :(得分:1)

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

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

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

SELECT * FROM tablename LIMIT offset, row_count

SELECT * FROM tablename LIMIT row_count OFFSET offset

偏移量为0将返回第一行。

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

select max(ROWNUM) as txid from tablename

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

select count(*) as txid from tablename