2 回答

TA貢獻(xiàn)1798條經(jīng)驗 獲得超3個贊
可以的,order by多個字段規(guī)則是這樣的,用逗號分隔每一個字段,如果字段不指明排序方式,默認(rèn)是增序。排序的方法是先按第一個字段排序,如果有相同的再按后續(xù)的字段依次排序。
舉個例子
按照c1排序的結(jié)果如上圖,然后我們按照c1增序,c2降序排列,結(jié)果如下:
在數(shù)據(jù)庫查詢時,常常需要排序,而有時排序條件可能有多個。
如數(shù)據(jù)庫:
a b
1 103
1 101
2 201
2 203
1 102
2 202
排序后: a b
1 103
1 102
1 101
2 203
2 202
2 201
語句:
SELECT A.a , A.b FROM TABLE A ORDER BY A.a ASC , A.b DESC
其中ASC連接多條排序,且與后一條查詢之間有逗號隔開!

TA貢獻(xiàn)2080條經(jīng)驗 獲得超4個贊
今天又測試了一下,使用utf8字符集創(chuàng)建的表或者字段使用的是utf8字符集,中文的排序是不正確的,如果表和字段是gbk字符集,則可以正確的排序。
mysql> create table tt_character (name varchar(20)) default charset gbk;
Query OK, 0 rows affected (0.03 sec)
mysql> create table tt_character1 (name varchar(20)) default charset utf8;
Query OK, 0 rows affected (0.04 sec)
mysql> insert into tt_character values('蘭州'),('安徽'),('江西');
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> insert into tt_character1 values('蘭州'),('安徽'),('江西');
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> select * from tt_character1 order by name;
+------+
| name |
+------+
| 蘭州 |
| 安徽 |
| 江西 |
+------+
3 rows in set (0.00 sec)
mysql> select * from tt_character order by name;
+------+
| name |
+------+
| 安徽 |
| 江西 |
| 蘭州 |
+------+
3 rows in set (0.00 sec)
添加回答
舉報