MySQL数据库学习笔记(6)- DQL之IN、LIKE、查询结果排序与分页


1. IN

运算符 IN 允许我们在 WHERE 子句中过滤某个字段的多个值。

它的基本形式如下:

SELECT [列名1, 列名2, ...] FROM 表名 WHERE 字段名 IN(1,2, ...)

下面是一个简单的示例,找到ID为2,3,4,9的记录

SELECT * FROM employee WHERE id IN (2, 3, 4, 9);

结果如下:
MySQL_IN

2. LIKE

当我们需要查询 包含 xxxx 的所有记录时,就需要使用 LIKE 子句。

说明:

  • LIKE 子句中的 % 类似于正则表达式中的 * ,匹配 0个或多个字符
  • LIKE 子句中的 _ 匹配任意单个字符。
  • LIKE 子句中如果没有 %_ ,相当于运算符 = 的效果。

下面是简单的示例:

SELECT * FROM employee WHERE name LIKE '%小%';  # 匹配名字中带小的记录
SELECT * FROM employee WHERE name LIKE '张_';   # 匹配姓张且名字为两个字的记录

3. 排序

使用关键字 ORDER BY 可以对查询结果按照一个或者多个字段进行排序。
ASC (正序), DESC (倒序) 默认为 ASC

对于表 employee 按照工资排序, 可以使用如下sql语句:

SELECT * FROM employee ORDER BY salary;

结果如下:
MySQL_ORDER

注意: 如果指定多列作为排序的条件,则表示如果第一个列的值相同,则按照后面的列的顺序进行排序。

默认为正序(从小到大)的顺序排序,想要实现倒序的效果,可以使用关键字 DESC

SELECT * FROM employee ORDER BY salary DESC;

4. 分页

如果数据比较多,想分为多页的方式显示数据,则可以使用 LIMIT 关键字。它的基本形式如下:

SELECT [1,2, ...] FROM 表名 LIMIT offset, row_count
  • offset : 表示偏移的位置
  • row_count :表示最多显示的行数

如果显示第N页的内容,每页显示M条记录,则可以使用公式
offset = (N - 1) * M

这里值得注意的是,如果想要从第一个数据开始,需要指定的索引(offset) 为0。
下面简单的示例:

SELECT * FROM employee ORDER BY salary DESC LIMIT 0, 4; # 获取第1页的数据
SELECT * FROM employee ORDER BY salary DESC LIMIT 4, 4; # 获取第2页的数据
SELECT * FROM employee ORDER BY salary DESC LIMIT 8, 4; # 获取第3页的数据

示例中,从表employee中按照的工资(salary)的高低(由高到低)显示前3页的数据,每页4条记录。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值