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数据库表: 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
相关文章推荐
- python 实现mysql分页查询 小练习
- MySQL 单表(employees)基础查询练习 (一)
- MySQL单表employees单行与多行子查询练习 (二)
- SQL server、MySQL、Oracle分页查询SQL语句
- MySQL:MySQL处理千万级数据查询、分页
- mysql分页原理和高效率的mysql分页查询语句
- MySQL中获取当前查询的总记录数,适用于分页等应用
- mysql 分页查询
- mysql 同时返回查询总数及分页数据
- oracle,mysql,sql serve的分页查询比较
- Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
- mysql大数据量使用limit分页,随着页码的增大,查询效率越低下。
- mysql 分页查询语句优化
- php分页查询mysql结果base64处理
- 数据库——MySQL(二)(增删查改、去重,分页、模糊查询、排序)
- MySQL 查询中的分页思路的优化
- MySQL查询语句的45道练习
- MYSQL的大数据量情况下的分页查询优化
- mysql大数据量使用limit分页,随着页码的增大,查询效率越低下。(转载)
- MySQL和Oracle分页查询实现方式