是否有兼容 Oracle 和 MySql 的解决方案来限制查询返回的行数?
例如在mysql中有LIMT子句
SELECT * FROM myTable LIMT 10;
在 Oracle 中,我们对 rownum 列使用条件
我想要一些同时适用于 MySQL 和 Oracle 的代码
最佳答案
如果您的表有一个唯一的 id 列(或列的组合),您可以执行以下操作:
select t.*
from t
where (select count(*) from t t2 where t2.id <= t.id) <= 10;
where
子句中的相关子查询是标准 SQL 语法,因此它应该在任何数据库中运行。
在小表上性能应该没问题。它会通过 t(id)
上的索引得到改进。
关于mysql - Solution Compatible Oracle and MySQL for LIMIT clause,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16841883/