關於mysql order by 的手記

2021-10-02 20:08:42 字數 1114 閱讀 5002

如果我們需要對讀取的資料進行排序,我們就可以使用 mysql 的order by子句來設定你想按哪個欄位哪種方式來進行排序,再返回搜尋結果。

以下是 sql select 語句使用 order by 子句將查詢資料排序後再返回資料:

select field1, field2,...fieldn from table_name1, table_name2...

order by field1 [asc [desc][預設 asc]], [field2...] [asc [desc][預設 asc]]

有一張users表,  原始資料:

假如我們在查詢的同時要對id進行排序後輸出,  就可以如下語句:

select * from users order by id; 或者 select * from users order by 1;
假如要對username進行排序:

select * from users order by username; 或者 select * from users order by 2;

也可以同時多個字段排序: (先對id排序,  id相同的時候對username二次排序)

select * from users order by id,username; 或者 select * from users order by 1,2;
逆序的情況就是加乙個desc:

select * from users order by id desc; 或者 select * from users order by 1 desc;

Mysql order by語句的優化

在某些情況中,mysql可以使用乙個索引來滿足order by子句,而不需要額外的排序。where條件和order by使用相同的索引,並且order by的順序和索引順序相同,並且order by的字段都是公升序或者都是降序。例如 下列sql可以使用索引。select from t1 order ...

mysql order by 排序的問題

參考部落格 mysql order by 的排序在今天時候遇到了問題 情景是 將排序的字段設定成varchar型別了,然後排序時候並沒有按從大到小的順序 按照圖中的順序應該是正序,9排在最上邊,但是實際上是666排在最上邊 解決辦法之一 實際情況是先按最左邊的開始排序然後在一位一位比下去,這裡在寫s...

《Mysql Order By 的工作原理?》

一 概述 order by 用於 sql 語句中的排序。以 select city,name,age from t where city 杭州 order by name limit 1000 舉例,來了解下排序的工作原理。為了避免其他因素的影響,我們為 city 字段加上索引。二 分析排序 分析 ...