SELECT period,idCnt FROM MyTb WHERE ((idCnt - 1) IN (SELECT idCnt FROM MyTb WHERE name ='book' AND idCnt>=44905)) AND idCnt>=44905 declare @name varchar(10) SELECT @name=name FROM MyTb WHERE idCnt=(SELECT MAX(idCnt) FROM MyTb)SELECT period,idCnt FROM MyTb WHERE ((idCnt - 1) IN (SELECT idCnt FROM MyTb WHERE name =@name AND idCnt>=44905) AND idCnt>=44905
long start=System.currentTimeMillis(); //获取最初时间 stmt = dbConn.prepareStatement(ls_select_sql); rs=stmt.executeQuery(); long end=System.currentTimeMillis(); //获取运行结束时间 out.print(end-start)+"ms"); rs.close(); stmt.close();我在本地测试的,前者直接写name ='book' 的耗时29547ms 而后者只有436ms,按理说应该直接写name ='book' 的快些呀
((idCnt - 1) IN (SELECT idCnt FROM MyTb WHERE name ='book' AND idCnt>=44905)) AND idCnt>=44905
declare @name varchar(10)
SELECT @name=name FROM MyTb WHERE
idCnt=(SELECT MAX(idCnt) FROM MyTb)SELECT period,idCnt FROM MyTb WHERE
((idCnt - 1) IN (SELECT idCnt FROM MyTb WHERE name =@name AND idCnt>=44905) AND idCnt>=44905
stmt = dbConn.prepareStatement(ls_select_sql);
rs=stmt.executeQuery();
long end=System.currentTimeMillis(); //获取运行结束时间
out.print(end-start)+"ms");
rs.close();
stmt.close();我在本地测试的,前者直接写name ='book' 的耗时29547ms
而后者只有436ms,按理说应该直接写name ='book' 的快些呀