1. order by(排序)
通常使用一個欄位作為參考標準,進行排序。
語法:order by 【字段】 asc|desc;(升序、降序)
tip : 校對規則 決定 排序關係。
允許多重欄位排序(先按第一個欄位排序,當出現不能區分的時候,再按第二個欄位進行排序,依此類推)。
【舉栗子】 對於下表,輸入select * from tb_name; 時,會依照輸入順序依序顯示表格中的資料:
當需要將資料表中資料依照欄位stu_score 降序排列時,在輸入語句後加上order by stu_score desc .
如果不註明昇序、降序,預設使用升序:
若使用多重欄位排序,eg. 先按stu_score排序,若分數相同,再依照開課時間date_begin進行排序,語句為:
select * from tb_name order by stu_score desc , date_begin , asc;
#tip : order by是將檢索出來的資訊排序,因此需要寫在where語句後。
如果是分組,則應該使用分組欄位進行排序的group by語法。
2. limit(限制獲得的記錄數量)
limit 發生在排序、檢索等行為之後,所以 limit 出現在最後。
對於下列的資料表,若限制只顯示其中的1個數據,則輸出結果為右圖:
# 最初資料輸入的順序,取第一組資料輸出。
也可以在進行排序後,限制只輸出前3名:語法:limit 偏移量總記錄數
;偏移量:被移除的起始點。 總記錄數:截取的長度。
若不寫入偏移量,預設從0開始。 3.distinct
(移除重複記錄)(與all對應) 當在表格exam_stu中,顯示欄位stu_score中的所有資料時,結果如下:
若想要移除其中的重複記錄,可使用語句,於是兩個95分便只剩下了一個:
重複記錄的標準是依照查詢
的欄位來決定的,當語句為select distinct * 時,只有當所有欄位都一樣時,才認為兩條資料重複;當語句是select distinct stu_score時,當兩個資料的stu_score相同時,認為二者重複;
當語句是select distinct stu_score,stu_name時,必須分數和名字一樣,才認為二者重複。 4. union查詢(聯合查詢) 將多個 select 語句合併在一起,稱為聯合運算。 使用 union 關鍵字,結合兩個 select 語句即可。 【舉栗子】要在表中查詢給php0228班和php0331班上課天數最多的兩位老師,語句為 select teacher_name,days##er_name,days# from teacher_class where class_name='php0228' order by days desc limit 1; select teacher_name,days from teacher_class 30310; 子語句的排序 ① 子語句包在子括號內; 資料型別上也應該要求一致(但是mysql內部會做型別轉換處理,要求是能轉換成功)。
以上是select 語句的詳細內容。更多資訊請關注PHP中文網其他相關文章!