以上一章節(jié)[Mysql]基本操作命令創(chuàng)建的的data_test表為例:
#進(jìn)入data_test數(shù)據(jù)表
show databases;
use data_test;
select * from data_test;#查詢出表中的數(shù)據(jù)
#
+----+--------+
| id | name |
+----+--------+
| 1 | 王武 |
| 2 | 張三 |
| 3 | 李四 |
+----+--------+
3 rows in set (0.00 sec)
#
單個(gè)列排序
通過排序獲取從大到小/從小到大的數(shù)據(jù)
#從大到小
select * from data_test order by id desc;
#
+----+--------+
| id | name |
+----+--------+
| 3 | 李四 |
| 2 | 張三 |
| 1 | 王武 |
+----+--------+
3 rows in set (0.00 sec)
#
#從小到大
select * from data_test order by id asc;
#
+----+--------+
| id | name |
+----+--------+
| 1 | 王武 |
| 2 | 張三 |
| 3 | 李四 |
+----+--------+
3 rows in set (0.00 sec)
#
多個(gè)列排序
由于初始創(chuàng)建的數(shù)據(jù)表只有兩列數(shù)據(jù),所以在data_test數(shù)據(jù)表中再新增兩列數(shù)據(jù)
#新增一列性別sex字段
alter table data_test add sex varchar(255);
show columns from data_test;
#
+-------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| name | varchar(255) | YES | | NULL | |
| sex | varchar(255) | YES | | NULL | |
+-------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
#
#更新數(shù)據(jù)
update data_test set sex="女" where id =2;
#Query OK, 1 row affected (0.00 sec)
select * from data_test;
#
+----+--------+------+
| id | name | sex |
+----+--------+------+
| 1 | 王武 | 男 |
| 2 | 張三 | 女 |
| 3 | 李四 | 男 |
+----+--------+------+
3 rows in set (0.00 sec)
#
多列基礎(chǔ)排序
#多列基礎(chǔ)排序
select * from data_test order by id,sex;
#
+----+--------+------+
| id | name | sex |
+----+--------+------+
| 1 | 王武 | 男 |
| 2 | 張三 | 女 |
| 3 | 李四 | 男 |
+----+--------+------+
3 rows in set (0.00 sec)
#
指定排序方向-desc
select * from data_test order by id desc;
#
+----+--------+------+
| id | name | sex |
+----+--------+------+
| 3 | 李四 | 男 |
| 2 | 張三 | 女 |
| 1 | 王武 | 男 |
+----+--------+------+
3 rows in set (0.00 sec)
#
指定排序方向-asc
select * from data_test order by id asc;
#
+----+--------+------+
| id | name | sex |
+----+--------+------+
| 1 | 王武 | 男 |
| 2 | 張三 | 女 |
| 3 | 李四 | 男 |
+----+--------+------+
3 rows in set (0.00 sec)
#
多列混合使用
select * from data_test order by sex desc,id desc;
#
+----+--------+------+
| id | name | sex |
+----+--------+------+
| 3 | 李四 | 男 |
| 1 | 王武 | 男 |
| 2 | 張三 | 女 |
+----+--------+------+
3 rows in set (0.00 sec)
#
#注:如果想在多個(gè)列上進(jìn)行降序排序,必須對(duì)每個(gè)列制定DESC關(guān)鍵字,如上所示
注意事項(xiàng)
在給出order by子句時(shí),應(yīng)該保證它位于from子句之后,如果使用limit,limit必須位于order by之后,否則出現(xiàn)的子句的次序?qū)?huì)出現(xiàn)錯(cuò)誤或者不準(zhǔn)確的查詢。