MySQL: select 語句

来源:http://www.cnblogs.com/zhqiang/archive/2017/05/23/6895738.html
-Advertisement-
Play Games

1. order by (排序) 通常使用一個欄位作為參考標準,進行排序。 語法:order by 【欄位】 asc|desc;(升序、降序) tip : 校對規則 決定 排序關係。 允許多欄位排序(先按第一個欄位排序,當出現不能區分的時候,按第二個欄位進行排序,依此類推)。 【舉個慄子】 對於下表 ...


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 from teacher_class where class_name='php0228' order by days desc limit 1;

                select teacher_name,days from teacher_class where class_name='php0331' order by days desc limit 1;

             這兩個分開的語句的確可以查找出想要的結果,但是若要做聯合查詢呢?

            語句是 :(語句1)union(語句2);

                          但這種寫法會將重覆的記錄刪除,若想保留所有記錄,哪怕重覆,可用一下格式:

                        (語句1)union all (語句2); 

tip:在使用union的情況下,排序有幾點需要註意。

     子語句的排序

       ① 將子語句包裹在子括弧內;

       ② 子語句的order by只有在配合limit使用時,才生效。原因是:union會對沒有limit的字句的order by優化(忽略)。

若相對union的結果進行排序,使用如下語句:

     (語句1)union(語句2)order by days ;

註意: ① 多個 select 語句的檢索到的欄位數必須一致;更嚴格的是,數據類型上也應該要求一致(但是mysql內部會做類型轉換處理,要              求是能轉換成功)。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 複製粘貼前隨手點個贊哦~~ //獲取地址欄參數 //url為空時為調用當前url地址 //調用方法為 var params = getPatams(); function getParams(url) { var theRequest = new Object(); if (!url) url = ... ...
  • 一、創建數組 使用 new 操作符調用構造函數 var arr = new Array(20) // 創建了一個包含20項的數組 var arr = new Array('a', 'b', 'c') // 創建了包含字元串 a b c 的三項數組 省略 new 操作符 var arr = Array ...
  • 效果圖如下: 1.activity_main.xml menu_shop_car_selected.png corner_view.xml 2.adapter_shopping_cart_item.xml 3.MainActivity 4.GoodsAdapter 5.GoodsModel http ...
  • 對於微信滑動關閉activity的功能,我一直覺得挺酷,想在自己的項目上也加上這個功能。網上找了一下發現一個不錯的思路。 使用ViewDragHelper。 首先要讓activity在滑動的時候下麵的activity能夠看得到,那麼就得設置activity的主題,讓activity的視窗變透明。 該 ...
  • Precondition : 配有 power path 功能的 BQ2589 手機。 接上 pc usb port。 Origin : 今天有同事問我, 手機是否可以在接上 pc usb port 時,讓手機停充, 有以下幾種停充, 停充_1 : BQ25896 有 power path 的功能, ...
  • 1、參考資料 Mob網站:http://www.mob.com/ Mob在Github上的例子:https://github.com/MobClub/SMSSDK-for-Android 教程:http://www.cnblogs.com/lizhanqi/p/5720962.html 教程的源代碼 ...
  • 功能變數名稱請求錯誤問題 當我們在編寫小程式,要發送請求時,wx.request({})時或許會遇到如下的問題: 一:這是因為微信小程式的開發中,功能變數名稱只能是https方式請求,所以我們必須在小程式微信公眾平臺設置小程式開發設置,配置伺服器合法功能變數名稱(必須是https) 如下圖所示: 二:如果你的所有配置都是準 ...
  • 參考: http://blog.csdn.net/allen_xu5320/article/details/47280457 查出IP 直接ADB連上去 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...