MySQL中排序與去重用法


distinct關鍵字

描述:去重,默認情況下,mysql是會顯示這些重復的行,如果需要把重復的數據只顯示一次,使用distinct

格式:select distinct 列名 from 表名  

下面例子中在passenger表中找出cp_id列重復的只顯示一次

注意:如果有多個列的話,查詢到的是,多個列組合起來重復的只顯示一次

limit關鍵字

描述:設定查詢結果返回的行,m表示返回的行數

格式 select  列名    from  表名  limit   m;      

那我們需要返回中間幾行的數據,該怎么做?limit可以接收兩個參數,第一個參數表示從哪行開始,第二個參數表示返回多少行

格式 :select  列名    from  表名  limit   n,m;  

select 列名 from 表名 limit 2,5           表示返回第3行開始往后5行的內容 (也就是返回第3、4、5、6、7行數據)

有人肯定疑惑了,為什么是第3行開始呢?這里需要注意,因為mysql的行號從0開始計算的,所以這里的n就是3

查詢結關鍵字order by

 MYSQL默認是按照升序排序的,也就是ASC升序

格式:select 列名1 from 表名 order by 列名2  ASC;

注意上面兩個列名1和列名2沒有聯系,第一個列名1是要查看的列,第二個列名2是想要排序的列民

那如果想要對多個列排序的話?是怎樣的呢。

格式:select 列名 from 表名 order by 列名1,列名2;

先按列名1排序,當第一個列值相同的時候,再按列名2排序,如果第一個列值沒有相同的,則不會按照列名2排序

降序排序 DESC

格式:select 列名 from 表名 order by 列名1  DESC;

 

 

 

那如果對多個列降序排序呢?只應用於直接位於其前面的列名,也就是下面格式中的列名2,這個和升序不同

格式:select  *  from 表名  order by  列名1 ,列名2  DESC ;

那如果想要多多個列去降序排序,怎么辦?如果想在多個列上進行降序排序,必須對每個列指定 DESC 關鍵字。

格式:select  *  from 表名  order by  列名1 DESC ,列名2  DESC ;

order by與limit組合使用

使用他們倆的組合可以找出一個列中的最高值或者最低值

如:select 列名1 from 表名 order by 列名1 DESC limit 0,1;

order by位於from字句的后面,如果使用limit,那么它必須位於order by后面


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM