MySql查找指定数据
# MySql查找指定数据
# offset 跟limit
从 employees
表中选择 hire_date
为第3个最新日期的所有记录。
SELECT *
FROM employees
WHERE hire_date = (
SELECT DISTINCT(hire_date)
FROM employees
ORDER BY hire_date DESC
LIMIT 1 OFFSET 2
);
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
解析:
- 子查询执行:
- 首先,子查询从
employees
表中提取所有的hire_date
值,并去重(DISTINCT
)。- 然后,将这些唯一的
hire_date
值按降序排列(ORDER BY hire_date DESC
)。- 最后,从排序后的结果集中跳过前2个值(
OFFSET 2
),并取第3个值(LIMIT 1
)。- 外层查询执行:
- 外层查询将子查询返回的
hire_date
值作为条件,从employees
表中选择所有hire_date
等于该值的记录。
LIMIT 1 OFFSET 2
表示从排序后的结果集中选择第3个唯一的hire_date
值(因为OFFSET 2
表示跳过前2个结果,LIMIT 1
表示只取1个结果)。
# 其他的limit
获取前3行数据:
SELECT * FROM users LIMIT 0, 3;
1
从第4行开始获取3行数据:
SELECT * FROM users LIMIT 3, 3;
1
上次更新: 2024/12/01, 14:58:26