是否有兼容Oracle和MySql的解决方案来限制查询返回的行数?
例如,在mysql中有LIMT子句
SELECT * FROM myTable LIMT 10;
在Oracle中,我们对rownum列使用条件
我想要一些同时适用于MySQL和Oracle的代码
发布于 2013-05-31 02:09:36
如果您的表具有唯一的id列(或列的组合),则可以执行以下操作:
select t.*
from t
where (select count(*) from t t2 where t2.id <= t.id) <= 10;SQL子句中的相关子查询是标准的where语法,因此它可以在任何数据库中运行。
在小桌子上的性能应该还可以。通过在t(id)上建立索引,它将得到改进。
发布于 2013-05-31 01:06:57
在oracle中它是
select * from mytable where rownum < 11另一种方法是分析函数,但mysql不支持这种方法。
发布于 2013-05-31 01:25:13
假设存在完全自动递增(没有数字被跳过)字段,并且没有其他条件
获取最后5条记录
SELECT * FROM account
HAVING (SELECT MAX(id) FROM account) - 5 < id 获取前5条记录
SELECT * FROM account
HAVING (SELECT MIN(id) FROM account) + 5 > idhttps://stackoverflow.com/questions/16841883
复制相似问题