mysql中對查詢結果進行排序

2021-08-26 07:01:26 字數 657 閱讀 1886

在進行web開發時,獲取結果排序大部分時候要麼正序排esc,要麼反序排desc,但有時候會出現比較複雜的排序,比如查詢參加培訓的學生所在的學校,部分學生並沒有獲取到其所在的學校資訊,排序的時候需要根據學校學生人數倒排序,同時對於不知道學校的統一記為其他,放在最後面。實現方式之一:

select case when es.name is not null then es.name else '其他' end as high_school,count(distinct esi.stu_id) high_num

from esd,eci,ed1, ed2,

esi left join es on esi.school_id = es.id

where ……

group by esi.school_id

order by (esi.school_id*1/esi.school_id) desc,high_num desc

學生沒有對應學校資訊的話,esi.school_id為null,esi.school_id*1為0,esi.school_id*1/esi.school_id為null,如果有對應的學校資訊的話,esi.school_id*1/esi.school_id為1,這樣就先將其他的放在了最後,然後在對有學校資訊的進行倒排序。

可能還有更好的方法,上面只是本人的拙見。

對查詢結果進行排序

order by 列名 asc desc 公升序或降序排序單列排序 多列排序 指定排序方向 一 單列排序 select from bookinfo order by price desc 注意 預設為公升序排序 二 多列排序 按照多個列進行排序,預設公升序,如 相同 時,按庫存排序 select f...

MySQL對查詢結果排序

從表中查詢出來的資料,可能是無序的,或者其排列順序表示使用者期望的 使用order by對查詢結果進行排序 select 欄位名1,欄位名2,from 表名 order by 欄位名1 asc desc 欄位名2 asc desc 指定的欄位名1 欄位名2,是對查詢結果排序的依據 引數asc,表示按...

MySQL對查詢結果排序

mysql對查詢結果排序,從表中查詢出來的資料,可能是無序的,或者其排列順序表示使用者期望的。使用order by對查詢結果進行排序 select 欄位名1,欄位名2,from 表名 order by 欄位名1 asc desc 欄位名2 asc desc 指定的欄位名1 欄位名2,是對查詢結果排序...