表test
Field | Type | Null | Key | Default | Extra |
id | int(11) | NO | PRI | NULL | auto_increment |
name | char(50) | NO | NULL | ||
city | char(50) | YES | NULL | ||
school | char(50) | YES | NULL |
为了明确排序SELECT语句检索出的数据,可使用ORDER BY子句。ORDER BY子句取一个或者多个列的名字,据此对输出进行排序
例1:SELECT name FROM test ORDER BY name;
这条语句按字段name升序排序输出结果。
注:用非检索的列排序数据时完全合法的
例如:SELECT city FROM test ORDER BY name;
也可以按多个列进行排序
例如:SELECT * FROM test ORDER BY city,name;
此语句首先按照city升序排序,然后在按name进行升序排序。
排序完全按所规定的顺序进行,对于上列,只有在多个行具有相同的city时,才对name进行排序。如果city列中所有的值都是唯一的,则不会对name进行排序。
指定排序方向
SELECT city FROM test ORDER BY name ASC;
这是按name字段进行升序排序,是默认行为,ASC关键字可以省略。
SELECT city FROM test ORDER BY name DESC;
这是按name字段进行进行降序排序,使用DESC 关键字。
如果要是按照多个列进行排序的话,排序关键字只作用于直接位于其前面的列名。
例如:SELECT * FROM test ORDER BY city DESC, name;
此例先按city字段降序排序再按name升序排序。
ORDER BY字句应该位于FROM子句之后LIMIT子句之前