我正在尝试在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)
)
我正在寻找样本,但我死路一条。
答案 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