1. MySql nion 介绍
MySQL union 是一种结合多个 SELECT 语句的结果组合到一个结果集的 SQL 操作。它与 UNION ALL 不同,因为它将删除重复项,这意味着每个结果集中的每条记录只会显示 1 次。 MySQL union 只能用于联结 SELECT 语句,而不能用于联结其他类型的 SQL 语句。
1.1 Union 语法
Union 的基本语法如下所示:
SELECT column1, column2, ..., column n
FROM table1
WHERE [condition]
UNION [ALL]
SELECT column1, column2, ..., column n
FROM table2
WHERE [condition];
其中,column1,column2,…column n 指要选择的列,FROM 指哪个表 SELECT 要从中检索数据,要应用的 WHERE 子句指定应选择哪些行,UNION ALL 和 UNION 来自不同的 SELECT 语句通过 UNION 或 UNION ALL 合并。
1.2 Union ALL 与 Union 区别
Union ALL 和 Union 之间最主要的区别就是 Union ALL 会在结果集中包含重复项,而 Union 不会。另外,Union ALL 操作要比 Union 操作快,因为 Union 操作需要作去重处理。
2. Limit 查询介绍
Limit 是一种结构,它用于限制 MySQL 查询的返回行数,这让我们可以轻松的分页来管理 MySQL 数据库。通过结合 OFFSET,我们可以控制数据表从何处开始返回结果集。
2.1 Limit 语法
本文档演示了如何创建并执行一个 limit 查询,Nr 是您要显示的行数,START 是您结果集的开始行号:
SELECT column1,column2,…column n
FROM table
LIMIT [no. of rows]
OFFSET [row num]
其中,OFFSET 用于指示 MySQL 从哪里开始返回结果集。LIMIT n 由两个可选参数组成:offset 和 count,如果仅提供 count,则在结果集开始处自动设置 offset。
2.2 使用 Union 与 Limit 语句来分页
我们也可以组合使用 Union 和 Limit 语句来分页。例如,如果我们想要获取两个 SELECT 语句联接的结果,我们可以使用 UNION,然后在整体结果集上应用 LIMIT 和 OFFSET,如下所示:
SELECT column1, column2, ..., column n
FROM table1
WHERE [condition]
UNION [ALL]
SELECT column1, column2, ..., column n
FROM table2
WHERE [condition]
ORDER BY column1, column2, ..., column n
LIMIT [no. of rows]
OFFSET [row num]
这将产生两个 union 的结果,将其组合成一个结果集,并根据列1,列2等对结果进行排序。结果集的大小由 LIMIT 参数限制。