• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 数据排序(order by)

    在前面的示例中,您可能已经注意到结果行以不特定的顺序显示。当以某种有意义的方式对行进行排序时,通常更容易检查查询输出。要对结果排序,请使用ORDER BY子句。

    这是动物生日,按日期排序:

    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

    默认的排序顺序是升序,先是最小值。要以倒序(降序)排序,请将DESC关键字添加到要排序的列的名称上:

    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列的排序顺序。