<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      怎么獲得MySQL結果集中的第n個最高值?使用MySQL LIMIT的處理案例

      [摘要]MySQL中最棘手的問題之一是:如何獲得結果集中的第n個最高值,例如查詢第二(或第n)貴的產品是哪個,顯然不能使用MAX或MIN這樣的函數來查詢獲得。 但是,我們可以使用MySQL LIMIT來解決...
      MySQL中最棘手的問題之一是:如何獲得結果集中的第n個最高值,例如查詢第二(或第n)貴的產品是哪個,顯然不能使用MAX或MIN這樣的函數來查詢獲得。 但是,我們可以使用MySQL LIMIT來解決這樣的問題。

      • 首先,按照降序對結果集進行排序。

      • 第二步,使用LIMIT子句獲得第n貴的產品。

      通用查詢如下:

      SELECT 
          column1, column2,...
      FROM
          table
      ORDER BY column1 DESC
      LIMIT nth-1, count;

      下面我們來看看一個例子,products表的結構如下所示 -

      mysql> desc products;
      +--------------------+---------------+------+-----+---------+-------+
        Field                Type            Null   Key   Default   Extra  
      +--------------------+---------------+------+-----+---------+-------+
        productCode          varchar(15)     NO     PRI   NULL             
        productName          varchar(70)     NO           NULL             
        productLine          varchar(50)     NO     MUL   NULL             
        productScale         varchar(10)     NO           NULL             
        productVendor        varchar(50)     NO           NULL             
        productDescription   text            NO           NULL             
        quantityInStock      smallint(6)     NO           NULL             
        buyPrice             decimal(10,2)   NO           NULL             
        MSRP                 decimal(10,2)   NO           NULL             
      +--------------------+---------------+------+-----+---------+-------+
      9 rows in set

      查看以下產品表中的行記錄:

      mysql> SELECT productCode, productName, buyprice
      FROM products
      ORDER BY
       buyprice DESC;
      +-------------+--------------------------------------+----------+
        productCode   productName                            buyprice  
      +-------------+--------------------------------------+----------+
        S10_4962      1962 LanciaA Delta 16V                 103.42    
        S18_2238      1998 Chrysler Plymouth Prowler         101.51    
        S10_1949      1952 Alpine Renault 1300               98.58     
        S24_3856      1956 Porsche 356A Coupe                98.3      
        S12_1108      2001 Ferrari Enzo                      95.59     
        S12_1099      1968 Ford Mustang                      95.34     
      ... ....
      +-------------+--------------------------------------+----------+
      110 rows in set

      我們的任務找出結果集中價格第二高的產品?梢允褂LIMIT子句來選擇第二行,如以下查詢(注意:偏移量從0開始,所以要指定從1開始,然后取一行記錄):

      SELECT productCode, productName, buyprice FROM  products
      ORDER BY buyprice DESC
      LIMIT 1, 1;

      執行上面查詢語句,得到以下結果 -

      mysql> SELECT productCode, productName, buyprice FROM  products
      ORDER BY buyprice DESC
      LIMIT 1, 1;
      +-------------+--------------------------------+----------+
        productCode   productName                      buyprice  
      +-------------+--------------------------------+----------+
        S18_2238      1998 Chrysler Plymouth Prowler   101.51    
      +-------------+--------------------------------+----------+
      1 row in set

      類似的,獲取售價第三高、第四高的產品信息為:LIMIT 2, 1LIMIT 3, 1。

      相關文章:

      如何得到Mysql每個分組中的第N條記錄

      mssql 實現mysql limit sql語句

      相關視頻:

      limit用法-布爾教育燕十八mysql入門視頻教程

      以上就是如何獲得MySQL結果集中的第n個最高值?使用MySQL LIMIT的解決案例的詳細內容,更多請關注php中文網其它相關文章!


      學習教程快速掌握從入門到精通的SQL知識。




      日韩精品一区二区三区高清