你可能已在前面的示例中注意到结果行没有按特定顺序显示,当行以某种有意义的方式排序时,一般更容易检查查询输出,要对结果进行排序,请使用ORDER BY
子句。mysql
这是动物的生日,按日期排序:sql
mysql> SELECT name, birth FROM pet ORDER BY birth; +----------+------------+ | name | birth | +----------+------------+ | Buffy | 1989-05-13 | | Bowser | 1989-08-31 | | Fang | 1990-08-27 | | Fluffy | 1993-02-04 | | Claws | 1994-03-17 | | Slim | 1996-04-29 | | Whistler | 1997-12-09 | | Chirpy | 1998-09-11 | | Puffball | 1999-03-30 | +----------+------------+
在字符类型列上,排序与全部其余比较操做同样,一般以不区分大小写的方式执行,这意味着除了大小写不一样外,对于相同的列,顺序是未定义的,你能够使用BINARY
强制对列进行区分大小写的排序,以下所示:ORDER BY BINARY col_name
。segmentfault
默认排序顺序是升序,首先是最小值,要按反向(降序)排序,请将DESC
关键字添加到要排序的列的名称:code
mysql> SELECT name, birth FROM pet ORDER BY birth DESC; +----------+------------+ | name | birth | +----------+------------+ | Puffball | 1999-03-30 | | Chirpy | 1998-09-11 | | Whistler | 1997-12-09 | | Slim | 1996-04-29 | | Claws | 1994-03-17 | | Fluffy | 1993-02-04 | | Fang | 1990-08-27 | | Bowser | 1989-08-31 | | Buffy | 1989-05-13 | +----------+------------+
你能够在多个列上进行排序,而且能够在不一样列上按不一样方向进行排序。例如,要按动物类型按升序排序,而后按动物类型中的出生日期按降序排序(最年轻的动物首先),请使用如下查询:排序
mysql> SELECT name, species, birth FROM pet ORDER BY species, birth DESC; +----------+---------+------------+ | name | species | birth | +----------+---------+------------+ | Chirpy | bird | 1998-09-11 | | Whistler | bird | 1997-12-09 | | Claws | cat | 1994-03-17 | | Fluffy | cat | 1993-02-04 | | Fang | dog | 1990-08-27 | | Bowser | dog | 1989-08-31 | | Buffy | dog | 1989-05-13 | | Puffball | hamster | 1999-03-30 | | Slim | snake | 1996-04-29 | +----------+---------+------------+
DESC
关键字仅适用于紧接其以前的列名(birth
),它不会影响species
列的排序顺序。ci