查询结果去重

第一种:使用distinct(关键词distinct用于返回唯一不同的值)

1
select distinct university from user_profile;

第二种:使用group by按照university进行分组

1
select university from user_profile group by university;

LIMIT 和 OFFSET

LIMIT

LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数

LIMIT 接受一个或两个数字参数。参数必须是一个整数常量

如果只给定一个参数,它表示返回最大的记录行数目

如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目

PS. 初始记录行的偏移量是 0(而不是 1)

检索记录行 6-10

1
2
3
SELECT * FROM table LIMIT 5,5
| |
偏移量 返回的最大数量

检索记录行 11-last

1
SELECT * FROM table LIMIT 10,-1

检索前 5 个记录行

1
SELECT * FROM table LIMIT 5

OFFSET

OFFSET 是用于指定SELECT语句开始返回行的偏移量的关键字

OFFSET 接受一个整数参数,表示要跳过的行数

OFFSET 偏移量是从0开始计算的

检索记录行 6-10

1
SELECT * FROM table LIMIT 5 OFFSET 5

可见这种方式和用LIMIT 5,5得到的结果是一样的,只不过LIMIT 5 OFFSET 5的方式可能更清晰一些

排序

在 MySQL 中,我们可以使用 ORDER BY 子句来对查询结果进行排序。ORDER BY 子句允许你指定一个或多个列,以确定查询结果的排序顺序。并且可以用ASC(正序)以及DESC(倒序)来设置排序的正倒序。

以下是一些基本的示例:

  1. 按升序排序:
1
2
SELECT * FROM your_table
ORDER BY column_name ASC;

在这个示例中,your_table 是你的表名,column_name 是你想要用来排序的列名。ASC 表示升序排序,即从最小值到最大值。

  1. 按降序排序:
1
2
SELECT * FROM your_table
ORDER BY column_name DESC;

在这个示例中,DESC 表示降序排序,即从最大值到最小值。

  1. 多列排序:

我们可以同时按多个列进行排序。如果第一个列中的值相同,系统将使用第二个列来进行排序,以此类推。

1
2
SELECT * FROM your_table
ORDER BY column1 ASC, column2 DESC;