4.4.4排序行

您可能已经注意到,在前面的示例中,结果行没有按特定的顺序显示。当行以某种有意义的方式排序时,检查查询输出通常会更容易。要对结果排序,请使用命令条款。

以下是动物的生日,按日期分类:

mysql> SELECT name, birth FROM pet ORDER BY birth+----------+------------+ | 名字|出生  | +----------+------------+ | 巴菲| 1989-05-13 | |包泽| 1989-08-31 |方| | 1990-08-27 | |的| 1993-02-04 | |爪子| 1994-03-17 | |苗条| 1996-04-29 | |惠斯勒| 1997-12-09 | |欢快| 1998-09-11 | |马勃| 1999-03-30  | +----------+------------+

对于字符类型列,排序——就像所有其他比较操作一样——通常以不区分大小写的方式执行。这意味着,对于除了大小写不同之外完全相同的列,其顺序没有定义。可以强制对列进行区分大小写的排序二进制像这样:按二进制col_name

默认排序顺序为升序,最小值在前。若要按倒序(降序)排序,请添加DESC关键字到您正在排序的列的名称:

mysql> SELECT name, birth FROM pet ORDER BY birth DESC;+----------+------------+ | 名字|出生  | +----------+------------+ | 马勃| 1999-03-30 | |欢快| 1998-09-11 | |惠斯勒| 1997-12-09 | |苗条| 1996-04-29 | |爪子| 1994-03-17 | |的| 1993-02-04 |方| | 1990-08-27 | |包泽| 1989-08-31 | |巴菲| 1989-05-13  | +----------+------------+

可以对多个列进行排序,也可以按不同方向对不同列进行排序。例如,要按动物类型升序排序,然后按动物类型中的出生日期降序排序(最年轻的动物优先),可以使用以下查询:

mysql> SELECT name, species, birth FROM pet ORDER BY species, birth DESC;+----------+---------+------------+ | 物种名称| |  | +----------+---------+------------+ | 鸟欢快的鸟| | 1998-09-11 | |惠斯勒| | 1997-12-09 | |猫爪子| | 1994-03-17 | |毛茸茸的猫| | 1993-02-04 | |方狗| | 1990-08-27 | |包泽狗| | 1989-08-31 | |巴菲狗| | 1989-05-13 | |马勃|仓鼠| 1999-03-30 | |蛇苗条| | 1996-04-29  | +----------+---------+------------+

DESC关键字仅适用于紧接在其前面的列名(出生);不影响物种列排序顺序。