MySQL 如何按分组字段ORDER BY
要按分组字段ORDER BY,可以使用ORDER BY CASE和IN()。CASE评估不同的条件,而ORDER BY按升序或降序排序值。 MySQL IN()用于查找匹配项。
让我们首先创建一个表 –
mysql> create table DemoTable
(
Value varchar(40)
);
查询OK,0行受影响(0.52秒)
使用insert命令将一些记录插入表中 –
mysql> insert into DemoTable values('John');
查询OK,1行受影响(0.22秒)
mysql> insert into DemoTable values('100&101');
查询OK,1行受影响(0.09秒)
mysql> insert into DemoTable values('Sam');
查询OK,1行受影响(0.09秒)
mysql> insert into DemoTable values('90');
查询OK,1行受影响(0.12秒)
mysql> insert into DemoTable values('Mike45');
查询OK,1行受影响(0.17秒)
使用select语句显示表中的所有记录 –
mysql> select *from DemoTable;
这将产生以下输出 –
+---------+
| Value |
+---------+
| John |
| 100&101 |
| Sam |
| 90 |
| Mike45 |
+---------+
5 rows in set (0.00 sec)
以下是按分组字段ORDER BY的查询 –
mysql> select *from DemoTable
order by case when Value IN('John','Sam','Mike45') then 100
when Value='90' then 101
when Value='100&101' then 102
else 103
end;
这将产生以下输出 –
+---------+
| Value |
+---------+
| John |
| Sam |
| Mike45 |
| 90 |
| 100&101 |
+---------+
5 rows in set (0.03 sec)
阅读更多:MySQL 教程
极客教程