mysql - max vs limit 哪个更有效

标签 mysql sql

这可能是一个非常简单的问题,但没有找到完美的答案。 查询是找到第二高的薪水,这可以通过使用 max 和 limit 两者来完成..

使用 MAX

 select max(salary) from table1 where 
 salary < (select max(salary) from table1);

使用限制

select salary from table1 where 
salary < (select max(salary) from table1)
order by salary desc
limit 1;

考虑到有 1000 条记录,哪个查询会更好且耗时更少。

提前致谢。

最佳答案

这两种查询都不是解决此问题的正确方法。您从所有记录中薪水小于 MAX(salary) 的记录中获得 MAX(salary)。换句话说,第二高的薪水。这样做的方法就是这样:

SELECT salary FROM table1 ORDER BY salary DESC LIMIT 1,1

如果你真的想要最大,就去做

SELECT MAX(salary) FROM table1

这里不需要子查询。无论如何,请确保您已经为 salary 列建立了索引,否则无论您如何运行查询都会很慢。

关于mysql - max vs limit 哪个更有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21745973/

相关文章:

mysql - 如何获取表中哪一列包含某个值的行?

php - Laravel 5 双向表登录

mysql - SQL - 返回表中重复值的情况

c# - 从参数化的 sql 查询中获取 SQL 语句

sql - SP :CacheHit Event in SQL Profiler 的说明

php - 由于遇到错误,该网站目前处于离线状态 - Mautic

mysql - 查找 MySQL 表中最大的价格上涨/下跌

mysql - 如何在 SQL 表中搜索短语

sql - Postgresql:插入两组或更多组的笛卡尔积

sql - 查询一天内所有用户的平均通话时长