五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > mysql/SQL SELECT TOP, LIMIT, ROWNUM 子句的用法

mysql/SQL SELECT TOP, LIMIT, ROWNUM 子句的用法

文章來源:365jz.com     點擊數(shù):617    更新時間:2017-12-16 09:07   參與評論

SQL SELECT TOP 子句

SELECT TOP 子句用于規(guī)定要返回的記錄的數(shù)目。

SELECT TOP 子句對于擁有數(shù)千條記錄的大型表來說,是非常有用的。

注釋:并非所有的數(shù)據(jù)庫系統(tǒng)都支持 SELECT TOP 子句。

SQL Server / MS Access 語法

SELECT TOP number|percent column_name(s)
FROM table_name;


MySQL 和 Oracle 中的 SQL SELECT TOP 是等價的

MySQL 語法

SELECT column_name(s)
FROM table_name
LIMIT number;

實例

SELECT *
FROM Persons
LIMIT 5;

Oracle 語法

SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;

實例

SELECT *
FROM Persons
WHERE ROWNUM <=5;


演示數(shù)據(jù)庫

在本教程中,我們將使用 RUNOOB 樣本數(shù)據(jù)庫。

下面是選自 "Websites" 表的數(shù)據(jù):

mysql> SELECT * FROM Websites;
+----+---------------+---------------------------+-------+---------+
| id | name          | url                       | alexa | country |
+----+---------------+---------------------------+-------+---------+
|  1 | Google        | https://www.google.cm/    |     1 | USA     |
|  2 | 淘寶          | https://www.taobao.com/   |    13 | CN      |
|  3 | 菜鳥教程       | http://www.runoob.com/    |  5000 | USA     |
|  4 | 微博           | http://weibo.com/         |    20 | CN      |
|  5 | Facebook      | https://www.facebook.com/ |     3 | USA     |
|  7 | stackoverflow | http://stackoverflow.com/ |     0 | IND     |
+----+---------------+---------------------------+-------+---------+


SQL SELECT TOP 實例

下面的 SQL 語句從 "Websites" 表中選取頭兩條記錄:

實例

SELECT * FROM Websites LIMIT 2;

執(zhí)行以上 SQL,數(shù)據(jù)如下所示:



SQL SELECT TOP PERCENT 實例

在 Microsoft SQL Server 中還可以使用百分比作為參數(shù)。

下面的 SQL 語句從 "Customers" 表中選取前面 50% 的記錄:

實例

以下操作在 Microsoft SQL Server 數(shù)據(jù)庫中可執(zhí)行。

SELECT TOP 50 PERCENT * FROM Websites;
(1)查詢最新10條新聞,只列出新聞標題和添加時間

SELECT TOP 10 Title, AddDateTime FROM News ORDER BY AddDateTime DESC

說明:如果新聞增加時是按時間發(fā)生的先后順序添加的話,也可以按ID來排序(因為ID為自增字段,ID越大的應越新),即:

SELECT TOP 10 Title, AddDateTime FROM News ORDER BY ID DESC

(2)查詢最熱門的8條新聞的標題和點擊次數(shù)

查詢語句為:  SELECT TOP 8 Title, Hits FROM News ORDER BY Hits DESC

用慣了access mssql server的朋友,可能在用mysql查詢前N條記錄時,習慣的使用select top n 形式的語句,在這里說明一下,mysql沒有此語法,mysql用limit來實現(xiàn)相關功能,而且功能更加強大,GOOD。以下是limit在mysql中的使用詳解: 
語法:
SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset
LIMIT 子句可以被用于強制 SELECT 語句返回指定的記錄數(shù)。LIMIT 接受一個或兩個數(shù)字參數(shù)。參數(shù)必須是一個整數(shù)常量。
如果給定兩個參數(shù),第一個參數(shù)指定第一個返回記錄行的偏移量,第二個參數(shù)指定返回記錄行的最大數(shù)目。
初始記錄行的偏移量是 0(而不是 1): 為了與 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。
mysql> SELECT * FROM table LIMIT 5,10; // 檢索記錄行 6-15 ,注意,10為偏移量 
//為了檢索從某一個偏移量到記錄集的結束所有的記錄行,可以指定第二個參數(shù)為 -1:
mysql> SELECT * FROM table LIMIT 95,-1; // 檢索記錄行 96-last.
//如果只給定一個參數(shù),它表示返回最大的記錄行數(shù)目:
mysql> SELECT * FROM table LIMIT 5; //檢索前 5 個記錄行 //也就是說,LIMIT n 等價于 LIMIT 0,n。
如果你想得到最后幾條數(shù)據(jù)可以多加個 order by id desc

mysql不支持select top n的語法,應該用這個替換:
select * from tablename order by orderfield desc/asc limit position, counter;
position 指示從哪里開始查詢,如果是0則是從頭開始,counter 表示查詢的個數(shù)
取前15條記錄:
select * from tablename order by orderfield desc/asc limit 0,15



如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會為你解答??! 點擊進入論壇

發(fā)表評論 (617人查看,0條評論)
請自覺遵守互聯(lián)網(wǎng)相關的政策法規(guī),嚴禁發(fā)布色情、暴力、反動的言論。
昵稱:
最新評論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學習

業(yè)務咨詢

· 技術支持
· 服務時間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權所有 鄂ICP備17013400號