什么是等效的Oracle(11克)代码执行以下操作:甲骨文MySQL的等效代码
对于MySQL
ps = con.prepareStatement("select SQL_CALC_FOUND_ROWS from student_details where UPPER(name) like UPPER(?) limit " + offset + ", " + noOfRecords);
和rs = ps.executeQuery("SELECT FOUND_ROWS()");
什么是等效的Oracle(11克)代码执行以下操作:甲骨文MySQL的等效代码
对于MySQL
ps = con.prepareStatement("select SQL_CALC_FOUND_ROWS from student_details where UPPER(name) like UPPER(?) limit " + offset + ", " + noOfRecords);
和rs = ps.executeQuery("SELECT FOUND_ROWS()");
试试这样说:
SELECT *
FROM (select t.*, rownum rn, count(*) over() as SQL_CALC_FOUND_ROWS
from student_details t
where UPPER(name) like UPPER(?))
WHERE rn <= offset
在“SQL_CALC_FOUND_ROWS”返回的值将是将,如果没有的WHERE rn <= offset
条款
只有两个RDBMS-我在你的陈述中看到的具体内容是“upper()”和“limit”。
下面是使用Oracle “ROWNUM” 作为 “限制” 一种解决方法的链接:
“Upper()”应该在Oracle中正常工作。
已选定的记录数也SQL_CALC_FOUND_ROWS可能会更好作为计数(*) – Randy 2012-07-07 19:11:24
那么SQL_CALC_FOUND_ROWS和SELECT FOUND_ROWS()呢? – kunal18 2012-07-07 19:11:28