亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

mysql數據庫怎么可以兩個條件排序?

mysql數據庫怎么可以兩個條件排序?

炎炎設計 2019-04-03 10:01:23
select * from mysql order by time descselect * from mysql order by id desc我希望讓time居先ID居后排列這樣可以嗎 select * from mysql order by time,id desc各位幫我解決下啊 謝謝了!
查看完整描述

2 回答

?
呼如林

TA貢獻1798條經驗 獲得超3個贊

可以的,order by多個字段規則是這樣的,用逗號分隔每一個字段,如果字段不指明排序方式,默認是增序。排序的方法是先按第一個字段排序,如果有相同的再按后續的字段依次排序。

舉個例子 

按照c1排序的結果如上圖,然后我們按照c1增序,c2降序排列,結果如下:

在數據庫查詢時,常常需要排序,而有時排序條件可能有多個。
  如數據庫:
  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連接多條排序,且與后一條查詢之間有逗號隔開!



查看完整回答
反對 回復 2019-04-04
?
犯罪嫌疑人X

TA貢獻2080條經驗 獲得超4個贊

今天又測試了一下,使用utf8字符集創建的表或者字段使用的是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)




查看完整回答
反對 回復 2019-04-04
  • 2 回答
  • 0 關注
  • 649 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號