运算符 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);
结果如下:
当我们需要查询 包含 xxxx 的所有记录时,就需要使用 LIKE 子句。
说明:
下面是简单的示例:
SELECT * FROM employee WHERE name LIKE '%小%'; # 匹配名字中带小的记录
SELECT * FROM employee WHERE name LIKE '张_'; # 匹配姓张且名字为两个字的记录
使用关键字 ORDER BY 可以对查询结果按照一个或者多个字段进行排序。
ASC (正序), DESC (倒序) 默认为 ASC
对于表 employee 按照工资排序, 可以使用如下sql语句:
SELECT * FROM employee ORDER BY salary;
结果如下:
默认为正序(从小到大)的顺序排序,想要实现倒序的效果,可以使用关键字 DESC 。
SELECT * FROM employee ORDER BY salary DESC;
如果数据比较多,想分为多页的方式显示数据,则可以使用 LIMIT 关键字。它的基本形式如下:
如果显示第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条记录。