mysql - Solution Compatible Oracle and MySQL for LIMIT clause

标签 mysql oracle limit compatibility clause

是否有兼容 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/

相关文章:

php - Joomla 中的 mysql 下一个和 orderby 中的上一个 SQL 语句

mysql - 关于 INSERT IGNORE mysql 的帮助

database - 如何避免无数据异常?

email - 电子邮件主题长度限制是多少?

mysql - 获取从查询返回的 mysql 结果总数,限制为 : FOUND_ROWS error

c# - 限制在 WPF 文本框中输入的行数

php - 在mysql中的一个查询中选择行以及总计数

mysql - 如何从现有数据创建新的逗号分隔列?

Oracle 临时表空间

sql - 如何将 bash 变量传递给 sqlplus,然后将该输出传递给另一个变量