-
2022-03-19 10:04:53
排序:
在mysql中,如果不指明排序顺序,则默认使用添加数据的顺序排序
但在一定实际情况中,免不了需要进行排序。排序要使用的关键字是order by,同时使用desc表达降序,使用asc表达升序。
如:
select lie //列 from table //表 order by lie desc; //对列降序排列
此外,列的别名可以在order by使用,但不能在where中使用。 使用order by时如果不指明排序方式,则默认升序(asc)排序。
分页:
MySQL中使用关键字limit来分页,声明顺序是where orderby limit (非程序语句执行顺序)
使用方法是 1. limit 偏移量,条目数 2.limit 0,条目数 等价于条目数,0可以省略
如:
select lie from table where lie >100 order by lie desc limit 0,10; //偏移量 条目数
在MySQL8.0中,有个关键字offset,可以放在偏移量和条目数中间,但是偏移量在offset右边,条目数在左边,这是MySQL8.0中的offset的用法。
更多相关内容 -
ASP.NET MVC分页和排序功能实现
2021-01-02 22:45:23这里,我打算使用EF Code-First方式分页控件就是用PagedList.MVC,来做分页,对于排序,实现的思路是,加载数据出来之后,默认是升序排序,然后我们点击一下相应的列标题,就按照该字段降序排序,查数据。思路明确了... -
sql分页查询几种写法
2020-09-10 07:22:44Sqlserver数据库分页查询一直是Sqlserver的短板,闲来无事,想出几种方法,下面小编给大家详细介绍sql分页查询的几种写法,有需要的朋友可以参考下 -
Mysql排序和分页(order by&limit)及存在的坑
2020-12-14 07:05:48asc|desc表示排序的规则,asc:升序,desc:降序,默认为asc; 支持多个字段进行排序,多字段排序之间用逗号隔开。 单字段排序 mysql> create table test2(a int,b varchar(10)); Query OK, 0 rows -
Mysql高效分页详解
2020-12-16 12:05:26通常针对MySQL大数据量的查询采取“分页”策略,但是如果翻页到比较靠后的位置时查询将变得很慢,因为mysql将花费大量的时间来扫描需要丢弃的数据。 基本分页技巧 通常情况下,为了实现高效分页,需要在查询中WHERE... -
详解SQLServer和Oracle的分页查询
2020-09-10 07:11:28分页功能是我们的基本功,必须要牢固掌握。通过对分页算法的整理,希望对实现分页功能更得心应手了,需要的朋友可以参考下 -
springmvc 分页查询的简单实现示例代码
2020-08-31 18:36:15我们在开发项目中很多项目都用到列表分页功能,本篇介绍了springmvc 分页查询的简单实现示例代码,非常具有实用价值,需要的朋友可以参考下。 -
Mybatis实现增删改查及分页查询的方法
2020-09-02 21:57:40MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持 久层框架,通过本文给大家介绍Mybatis实现增删改查及分页查询的方法,感兴趣的朋友一起学习吧 -
Java的MyBatis框架中实现多表连接查询和查询结果分页
2020-09-02 13:32:03主要介绍了Java的MyBatis框架中实现多表连接查询和查询结果分页,借助MyBatis框架中带有的动态SQL查询功能可以比普通SQL查询做到更多,需要的朋友可以参考下 -
数据库分页存储过程代码
2020-12-15 03:30:35代码如下:/* 数据库分页存储过程,支持倒序和升序 参数说明: @tablename:为搜索表名 @tablefield:为表的字段,约定为表的主键, @where:为搜索表名,要显示所有记录请设为”1=1″ @orderby:为搜索结果排序... -
MySQL数据库——排序与分页
2022-03-06 21:03:59升序 ASC(默认为升序) 降序 DESC 2.单列排序 # 按照salary从高到低的顺序显示员工信息 SELECT * FROM employees ORDER BY salary DESC; 3.多列排序 # 按照department_id升序、salary降序显示员工信息 SELECT * ...一、排序
1.排序规则
- 升序 ASC(默认为升序)
- 降序 DESC
2.单列排序
# 按照salary从高到低的顺序显示员工信息 SELECT * FROM employees ORDER BY salary DESC;
3.多列排序
# 按照department_id升序、salary降序显示员工信息 SELECT * FROM employees ORDER BY department_id ASC,salary DESC;
注意事项:
- 在没有进行排序命令时,表内数据顺序:添加的先后顺序
- order by 子句在 select 语句后运行
二、分页
1.语句格式
LIMIT 位置偏移量, 条目数;
- limit子句位于查询语句的最后,参数位置偏移量为零时可省略。
# 需求:每页显示pageSize条记录,此时显示第pageNum页 SELECT employee_id, last_name FROM employees LIMIT (pageNum-1)*pageSize,pageSize;
2、mysql8.0新特性
SELECT employee_id, last_name FROM employees LIMIT pageSize OFFSET (pageNum-1)*pageSize,; # 参数位置偏移量与条目数的位置颠倒即可
注意事项:
- limit 子句在 orcal 数据库中不适用
-
MyBatisPlus分页的同时指定排序规则
2020-07-29 15:17:47分页配置 MyBatis Plus要想使用分页,需要添加如下配置: @Configuration @ConditionalOnClass(value = {PaginationInterceptor.class}) public class MybatisPlusConfig { /** * 分页插件 * @return */ @Bean...分页配置
MyBatis Plus要想使用分页,需要添加如下配置:
@Configuration @ConditionalOnClass(value = {PaginationInterceptor.class}) public class MybatisPlusConfig { /** * 分页插件 * @return */ @Bean public PaginationInterceptor paginationInterceptor() { PaginationInterceptor paginationInterceptor = new PaginationInterceptor(); return paginationInterceptor; //返回分布拦截器 } }
指定排序规则:
方法一
public PageBean<Category> listPage(int pageNum, int pageSize) { IPage<Category> page = new Page<>(pageNum,pageSize); QueryWrapper<Category> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("state",1) .orderByDesc("level"); IPage<Category> categoryIPage = categoryMapper.selectPage(page, queryWrapper); return PageBean.init(categoryIPage); }
方法二(不建议)
public PageBean<Category> listPage(int pageNum, int pageSize) { IPage<Category> page = new Page<>(pageNum,pageSize); QueryWrapper<Category> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("state",1) .orderBy("level") .last("desc"); // 手动把sql拼接到最后(有sql注入的风险,请谨慎使用) IPage<Category> categoryIPage = categoryMapper.selectPage(page, queryWrapper); return PageBean.init(categoryIPage); }
-
MySQL-11-排序与分页
2022-01-29 21:16:14ASC(ascend): 升序 DESC(descend):降序 ORDER BY 子句在SELECT语句的结尾。 1.2 单列排序 SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date ; SELECT last_name,...1. 排序数据
- 1.1 排序规则
- 使用 ORDER BY 子句排序
- ASC(ascend): 升序
- DESC(descend):降序
- ORDER BY 子句在SELECT语句的结尾。
- 使用 ORDER BY 子句排序
- 1.2 单列排序
SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date ;
SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date DESC ;
SELECT employee_id, last_name, salary*12 annsal FROM employees ORDER BY annsal;
- 1.3 多列排序
SELECT last_name, department_id, salary FROM employees ORDER BY department_id, salary DESC;
可以使用不在SELECT列表中的列排序。
在对多列进行排序的时候,首先排序的第一列必须有相同的列值,才会对第二列进行排序。如果第一列数据中所有值都是唯一的,将不再对第二列进行排序。
2. 分页
-
2.1 背景
背景1:查询返回的记录太多了,查看起来很不方便,怎么样能够实现分页查询呢?
背景2:表里有 4 条数据,我们只想要显示第 2、3 条数据怎么办呢? -
2.2 实现规则
-
分页原理
- 所谓分页显示,就是将数据库中的结果集,一段一段显示出来需要的条件。
- MySQL中使用 LIMIT 实现分页
- 格式:
LIMIT [位置偏移量,] 行数
第一个“位置偏移量”参数指示MySQL从哪一行开始显示,是一个可选参数,如果不指定“位置偏移 量”,将会从表中的第一条记录开始(第一条记录的位置偏移量是0,第二条记录的位置偏移量是 1,以此类推);第二个参数“行数”指示返回的记录条数。
- 举例
前10条记录: SELECT * FROM 表名 LIMIT 0,10; 或者 SELECT * FROM 表名 LIMIT 10; --第11至20条记录: SELECT * FROM 表名 LIMIT 10,10; --第21至30条记录: SELECT * FROM 表名 LIMIT 20,10;
MySQL 8.0中可以使用“LIMIT 3 OFFSET 4”,意思是获取从第5条记录开始后面的3条记录,和“LIMIT 4,3;”返回的结果相同。
分页显式公式:(当前页数-1)*每页条数,每页条数
SELECT * FROM table LIMIT(PageNo - 1)*PageSize,PageSize;
注意:LIMIT 子句必须放在整个SELECT语句的最后!
使用 LIMIT 的好处
约束返回结果的数量可以 减少数据表的网络传输量 ,也可以 提升查询效率 。如果我们知道返回结果只有 1 条,就可以使用 LIMIT 1 ,告诉 SELECT 语句只需要返回一条记录即可。这样的好处就是 SELECT 不 需要扫描完整的表,只需要检索到一条符合条件的记录即可返回。
2.3 拓展
在不同的 DBMS 中使用的关键字可能不同。在 MySQL、PostgreSQL、MariaDB 和 SQLite 中 使用 LIMIT 关键字,而且需要放到 SELECT 语句的最后面。
如果是 SQL Server 和 Access,需要使用 TOP 关键字,比如:
SELECT TOP 5 name, hp_max FROM heros ORDER BY hp_max DESC
如果是 DB2,使用 FETCH FIRST 5 ROWS ONLY 这样的关键字:
SELECT name, hp_max FROM heros ORDER BY hp_max DESC FETCH FIRST 5 ROWS ONLY
如果是 Oracle,你需要基于 ROWNUM 来统计行数:
SELECT rownum,last_name,salary FROM employees WHERE rownum < 5 ORDER BY salary DESC;
需要说明的是,这条语句是先取出来前 5 条数据行,然后再按照 hp_max 从高到低的顺序进行排序。但 这样产生的结果和上述方法的并不一样。我会在后面讲到子查询,你可以使用 SELECT rownum, last_name,salary FROM ( SELECT last_name,salary FROM employees ORDER BY salary DESC) WHERE rownum < 10; 得到与上述方法一致的结果。
- 1.1 排序规则
-
SQL Server 分页查询通用存储过程(只做分页查询用)
2020-09-10 13:53:06段存储过程写得SQL代码很不错,在这个基础上,按照我的习惯以及思维方式,调整了代码,只做分页查询用 -
vue.js框架实现表单排序和分页效果
2020-12-29 19:22:58本文实例为大家分享了vue.js实现表单排序和分页的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html> <head> <meta charset=UTF-8> [removed][removed] <title>表格组件&... -
数据库存储过程分页显示
2020-12-15 17:52:31注:需要建立索引 代码如下:/* 经测试,在 14483461 条记录中查询第 100000 页,每页 10 条记录按升序和降序第一次时间均为 0.47 秒,第二次时间均为 0.43 秒,测试语法如下: exec GetRecordFromPage ... -
AspNetPager分页控件 存储过程
2020-09-11 08:11:36我用AspNetPager分页控件,写的存储过程 -
ASP 千万级数据分页的存储过程
2021-01-21 19:29:13代码如下:/* 函数名称: GetRecordFromPage 函数功能: 获取指定页的数据 参数说明: @tblName 包含数据的表名 @fldName 关键字段名 @PageSize 每页记录数 @PageIndex 要获取的页码 @OrderType 排序类型, 0 – 升序, 1... -
Oracle 分页和排序常用的4条查询语句
2021-01-27 08:27:00在Oracle中如何实现分页和排序功能的查询语句?在实现的手法上可能与MS SQL Server有所差异,这主要都是由于两种数据库中对于在Oracle中如何实现分页和排序功能的查询语句?在实现的手法上可能与MS SQL Server有所... -
MySQL学习(四):排序与分页
2022-03-03 20:59:24MySQL排序与分页 -
面试积累-SpringBoot-如何使用SpringBoot实现分页和排序?
2022-04-12 19:31:53使用 Spring Boot 实现分页非常简单。使用 Spring Data-JPA 可以实现将可分页的org.springframework.data.domain.Pageable 传递给存储库方法。 -
千万级分页存储过程实现对表的数据分页速度非常快
2019-10-12 17:03:44经测试,在 14483461 条记录中查询第 100000 页,每页 10 条记录按升序和降序第一次时间均为 0.47 秒,第二次时间均为 0.43 秒; 再生产环境中非常实用,帮助你解决线上数据库卡顿问题。 -
element el-table 添加分页后全部排序
2022-02-28 13:57:24<el-table :data="tableData" style="width: 100%" stripe @sort-change="sortChange"> <!-- 这是添加排序 --> <el-table-column prop="date" label="时间" ...-- 分页 --> <el-paginat. -
jquery dataTable 后台加载数据并分页实例代码
2020-10-19 17:56:06本篇文章主要介绍了jquery dataTable 后台加载数据并分页实例代码,具有一定的参考价值,有兴趣的可以了解一下 -
【mysql】limit实现分页
2022-02-11 20:52:55分页 1. 使用limit实现数据的分页显示 需求1:每页显示20条记录,此时显示第1页 SELECT employee_id,last_name FROM employees LIMIT 0,20; 需求2:每页显示20条记录,此时显示第2页 SELECT employee_id,last_... -
ASP.Net2.0 GridView 多列排序,显示排序图标,分页
2021-01-02 02:44:19最近在使用ASP.net 2.0的GridView 控件时,发现排序与分页功能Microsoft实现的都很简单,比如排序,在点击列名的时候来触发整页的PostBack,然后排序,但是在列头上没有一个显示升序降序的图标,这会让最终用户使用... -
JavaWeb使用动态sql实现分页查询以及条件查询功能
2022-03-22 19:39:28JavaWeb使用动态sql实现分页查询以及条件查询功能 -
Spring Data分页与排序的实现方法
2020-08-26 16:12:22主要给大家介绍了关于Spring Data分页与排序的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 -
NodeJs操作MongoDB教程之分页功能以及常见问题
2020-10-17 04:55:04主要给大家介绍了关于NodeJs操作MongoDB教程之分页功能以及常见问题的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用NodeJs具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧 -
MyBatis-Plus多表联合查询并且分页(3表联合)
2020-08-24 19:45:57主要介绍了MyBatis-Plus多表联合查询并且分页(3表联合),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏数
39,449
精华内容
15,779