您的位置:首页 > 数据库 > MySQL

MySQL 单表employees 分页查询练习 (三)

2018-02-10 19:40 429 查看
测试用数据来源于Oracle数据库中的测试数据
MySQL数据库表:  employees库表测试试数据#--分页查询练习
#--1.查询工资最高的3名员工信息
#-- 第一步按工资排序 tb1
SET @rownum:=0; #--mysql没有伪列,使用局部变量代替 https://www.cnblogs.com/shuilangyizu/p/7866479.html SELECT e1.EMPLOYEE_ID,e1.SALARY, @rownum:=@rownum+1 as rownum FROM (SELECT @rownum:=0) r, employees e1 ORDER BY e1.SALARY DESC
#--第二步
SELECT e2.* FROM tb1 e2 WHERE rownum<=3
#--第三步 整合
SELECT e2.* FROM(
SELECT e1.EMPLOYEE_ID,e1.SALARY, @rownum:=@rownum+1 as rownum FROM (SELECT @rownum:=0) r, employees e1 ORDER BY e1.SALARY DESC
) e2 WHERE rownum<=3

#--2.查询工资排名第5到第10的员工信息
#--第一步 按工资排序
SELECT e1.EMPLOYEE_ID,e1.SALARY, @rownum:=@rownum+1 FROM employees e1, (SELECT @rownum:=0) r ORDER BY e1.SALARY DESC
#--第二步 给第一步结果起别名tb1
SELECT tb1.* FROM (第一步) tb1 WHERE rownum>=5 and rownum <=10
#--第三步 整合
SELECT tb1.* FROM (
SELECT e1.EMPLOYEE_ID,e1.SALARY, @rownum:=@rownum+1 rownum FROM employees e1, (SELECT @rownum:=0) r ORDER BY e1.SALARY DESC
)tb1 WHERE rownum>=5 and rownum <=10

#--3.查询first_name是以大写D开头的第3到第5个员工信息
#--第一步 查询first_name是以大写D开头的员工信息 --tb1
SELECT e.first_name, @rownum:=@rownum+1 rownum FROM (SELECT @rownum:=0) r, employees e WHERE e.first_name LIKE 'D%' #--tb1
#--第二步 第3到第5个员工信息
SELECT tb1.*, rownum FROM(第一步)tb1 WHERE rownum>=3 and rownum<=5
#==第三步
SELECT tb1.* FROM(
SELECT e.first_name, @rownum:=@rownum+1 rownum FROM (SELECT @rownum:=0) r, employees e WHERE e.first_name LIKE 'D%' #--tb1
)tb1 WHERE tb1.rownum>=3 and tb1.rownum<=5
2018-02-10
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MySQL SQL 分页查询