排序和分组

排序操作

使用 MySQL 的 ORDER BY 子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。

可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列

例如

SELECT * from article ORDER BY addtime ASCCode language: JavaScript (javascript)

默认写法

select * from post;Code language: JavaScript (javascript)

等同于

select * from post order by id asc;Code language: JavaScript (javascript)

倒序排列

mysql> select * from post order by id desc;
+----+------------------+---------------------+---------------------+
| id | title            | content             | addtime             |
+----+------------------+---------------------+---------------------+
|  7 | 求助 怎么去广州              | 我要从南海去广州                 | 2018-04-25 14:40:18 |
|  6 | 求助 怎么去广州              | 我要从南海去广州                 | 2018-04-25 14:40:18 |
|  5 | 求助 怎么去广州              | 我要从南海去广州                 | 2018-04-25 14:40:18 |
|  4 | 求助 怎么去广州              | 我要从南海去广州                 | 2018-04-25 14:15:42 |
|  2 | 求助怎么去背景               | 我要从南海区背景                  | 2018-04-25 14:15:42 |
|  1 | 有没有人是背景的               | 我在背景 谁去看电影               | 2018-04-25 14:14:37 |
+----+------------------+---------------------+---------------------+
6 rows in set (0.00 sec)Code language: JavaScript (javascript)

还可以按其他字段排

select * from post order by title desc;Code language: JavaScript (javascript)

还可以先按title降序 再按id升序

select * from post order by title desc , id asc;Code language: JavaScript (javascript)

分组group by语句

GROUP BY 语句根据一个或多个列对结果集进行分组。

在分组的列上我们可以使用 COUNT, SUM, AVG,等函数

例如

SELECT name, COUNT(1) FROM employee GROUP BY name;
mysql> select title from post group by title;
+------------------+
| title            |
+------------------+
| 有没有人是背景的               |
| 求助 怎么去广州              |
| 求助怎么去背景               |
+------------------+
3 rows in set (0.00 sec)Code language: JavaScript (javascript)

一旦分组 不用用其他的没有分组的列了

mysql> select title,count(title) from post group by title;
+------------------+--------------+
| title            | count(title) |
+------------------+--------------+
| 有没有人是背景的               |            1 |
| 求助 怎么去广州              |            4 |
| 求助怎么去背景               |            1 |
+------------------+--------------+
3 rows in set (0.00 sec)

mysql> select title,count(title),id from post;
+------------------+--------------+----+
| title            | count(title) | id |
+------------------+--------------+----+
| 有没有人是背景的               |            6 |  1 |
+------------------+--------------+----+
1 row in set (0.00 sec)Code language: JavaScript (javascript)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注