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


猜你喜欢
- 一 描述1030. 距离顺序排列矩阵单元格 - 力扣(LeetCode) (leetcode-cn.com)给定四个整数 row
- 如下所示:# -*- coding: utf-8 -*-import threadingimport threadimport timecl
- 场景:在页面中点击按钮,数量增加,值是存在store中的,点击事件,值没变。<script setup lang="ts&q
- Python字符串拼接的6种方法:1.加号第一种,有编程经验的人,估计都知道很多语言里面是用加号连接两个字符串,Python里面也是如此直接
- 如果你取相对路径不是在主文件里,可能就会有相对路径问题:"No such file or directory"。因为 p
- 我们在使用selenium库调用Chromedriver.exe时需要很多的配置参数下面列出了常用参数chrome_options.add_
- 利用oracle的dbms_random包结合rownum来实现,示例如下,随机取499户:select * from ( select *
- BP算法是适用于多层神经网络的一种算法,它是建立在梯度下降法的基础上的。本文着重推导怎样利用梯度下降法来minimise Loss Func
- 一次性选中并修改多个相同的变量在编码的时候,有时候要批量替换一个变量的名字,但是又不想使用批量替换,因为在不同的作用域中是可以使用相同的变量
- 在看视频教程的时候提到了[{'a' : 97}, {'b' : 98}, {'c' : 99
- 通过exec可以执行动态Python代码,类似Javascript的eval功能;而Python中的eval函数可以计算Python表达式,
- BootstrapValidator 是一款专门针对Boostrap v3的表单检验jQuery插件,能够实现众多常用的检验功能,并且易于扩
- sql查询数组中是否包含某个内容find_in_set如果表Atable中的a字段内容是1,2,3 的格式(a字段是用,分隔的),要查询该字
- 边缘检测Canny边缘检测器是一种被广泛使用的算法,并被认为是边缘检测最优的算法,该方法使用了比高斯差分算法更复杂的技巧,如多向灰度梯度和滞
- 关于PHP调用Python数据传输问题这是以前大学时做项目出现的问题,现在把它挪上来,希望给遇到问题的未来大佬给出一些小的思路,请大佬们不要
- 在最近的一个项目需要实现在MySQL单表多关键字模糊查询,但这数个关键字并不一定都存在于某个字段。例如现有table表,其中有title,t
- vscode配置ruby开发环境vscode近年来发展迅速,几乎在3年之间就抢占了原来vim、sublime text的很多份额,犹记得在2
- Microsoft Access 数据库 (.mdb) 文件大小2 G 字节。不
- 在Python中,任何类型的对象都可以做真值测试,并且保证返回True或者False。以下几种值(不论类型)在真值测试中返回False:1.
- 目录前言1.获取当前时刻时间1.1返回当前时刻的日期和时间1.2获取当前时刻的日期1.3获取当前时刻的时间1.4获取当前时刻的周数2.日期时