MySQL索引查询limit offset及排序order by用法

作者:Hunter后端 时间:2024-01-20 19:55:53 

引言

“ 这是MySQL系列笔记的第九篇,文章内容均为本人通过实践及查阅资料相关整理所得,可用作新手入门指南,或者个人知识点查阅。”

select 语句获取数据我们可以通过 where 语句来限制条件。

但是如果限制条件之后还是很多数据,比如说 一万条,但有时候我们只是想看看数据的基本情况,不需要一万条数据,看不完,而且这一万条数据返回到客户端的时间也很长,没必要,那么这就需要我们使用 limit 和 offset 来限制返回的数量。

使用 limit 和 offset 来限制返回的数量

1、limit

limit 限制数量,后面跟一个整数 n,表示只返回符合条件的 n 条数据

比如说返回 book 表的前 5 条数据:

select * from book limit 5;

2、offset

offset 是偏移量,和 limit 连用,比如说 limit 3 offset 5 表示舍弃前5条数据, 然后返回之后的 3条数据

可以理解成分页的用法,比如说每页数量为 10 条,然后我们分别获区第1、2、3、4页的数据:

select * from book limit 10 offset 0;
select * from book limit 10 offset 10;
select * from book limit 10 offset 20;
select * from book limit 10 offset 30;

注意: limit 和 offset 语句都放在查询语句的最后面。

MySQL 查询语句排序的关键字是 order by。

order by 的如下几个用法

order by 的正序、逆序

多个字段排序

按照中文排序

1、order by 的升序、倒序

order by 的语法是 order by field_name asc/desc,asc 是升序,desc 是倒序

比如根据 book_name 字段按照升序排列返回:

select * from book order by book_name asc;

其实,asc 是 order by 的默认排序方式,所以如果是升序,asc 是可以省略的。

select * from book order by book_name;

如果是倒序就是用 desc:

select * from book order by book_name desc;

2、多个字段排序

如果是多个字段分别倒序、升序,通过逗号分隔连用即可:

select * from book order by book_name desc, author asc;

3、按照中文排序

现在插入几条带中文的数据:

insert into book (book_name, author) values('中文测试', '作者1'), ('这是测试', '作者2'), ('测试', '作者3');

直接使用排序的逻辑会发现排序是不对的,因为 '测试' 的拼音是在 'ceshi',但是排序却并没有在其他两条数据前面:

select * from book order by book_name;

那么这就需要用到另一个用法:

select * from book order by convert(book_name using gbk);

其语法是 convert(field_name using gbk),convert 函数里是字段名,然后 using gbk 表示转化成 gbk 的格式来排序。

来源:http://r4.gs/89BQ

标签:MySQL,limit,offset,order-by,索引
0
投稿

猜你喜欢

  • Python正则表达re模块之findall()函数详解

    2021-04-20 05:00:16
  • ajax+node+request爬取网络图片的实例(宅男福利)

    2024-05-05 09:21:11
  • 详解TensorFlow在windows上安装与简单示例

    2021-06-01 23:54:31
  • 实例解析js中try、catch、finally的执行规则

    2024-04-22 13:25:49
  • 开发Web应用程序的结构化过程

    2009-06-01 10:52:00
  • go 下载非标准库包(部份包被墙了)到本地使用的方法

    2024-05-10 13:56:50
  • 将Python字符串生成PDF的实例代码详解

    2023-07-21 02:01:45
  • 基于python requests selenium爬取excel vba过程解析

    2021-06-18 23:47:09
  • javascript判断中文的正则

    2024-04-10 10:56:27
  • python实现布隆过滤器及原理解析

    2023-03-11 15:01:20
  • python统计文本文件内单词数量的方法

    2021-09-20 17:51:55
  • Python反射用法实例简析

    2021-10-15 20:28:34
  • python使用多线程+socket实现端口扫描

    2023-04-14 19:21:14
  • 详解JavaScript函数callee、call、apply的区别

    2024-05-11 10:23:21
  • python中的生成器、迭代器、装饰器详解

    2022-03-01 20:36:46
  • 使用SQL语句,查第10-20条记录

    2008-02-19 18:34:00
  • django-rest-swagger对API接口注释的方法

    2022-04-12 00:06:02
  • UltraEdit编辑器免费激活方法

    2023-09-14 22:19:33
  • Python中的int函数使用

    2023-05-13 06:11:59
  • python使用xmlrpc实例讲解

    2023-11-25 08:46:59
  • asp之家 网络编程 m.aspxhome.com