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
上次更新: 2025/08/30, 16:13:01