我正在尝试在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
用于选择行的子集,即两个值之间的行(不包括(。查询的第一行编号为 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