首頁 >資料庫 >mysql教程 >mysql有top查詢嗎

mysql有top查詢嗎

anonymity
anonymity原創
2019-05-08 17:10:393683瀏覽

在MySQL中沒有top查詢,但可以使用limit限制查詢來達到相同的效果,語法為「SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset」。

mysql有top查詢嗎

用慣了access mssql server的朋友,可能在用mysql查詢前N條記錄時,習慣的使用select top n 形式的語句,在這裡說明一下,mysql沒有此語法,mysql用limit來實現相關功能,而且功能更加強大,GOOD。以下是limit在mysql中的使用詳解: 

語法:

SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset

LIMIT 子句可以用來強制 SELECT 語句傳回指定的記錄數。 LIMIT 接受一個或兩個數字參數。參數必須是一個整數常數。

如果給定兩個參數,第一個參數指定第一個傳回記錄行的偏移量,第二個參數指定傳回記錄行的最大數目。

初始記錄行的偏移量是 0(而不是 1): 為了與 PostgreSQL 相容,MySQL 也支援句法: LIMIT # OFFSET #。
mysql> SELECT * FROM table LIMIT 5,10; // 檢索記錄行6-15 ,注意,10為偏移量 
//為了檢索從某一個偏移量到記錄集的結束所有的記錄行,可以指定第二個參數為-1:
mysql> SELECT * FROM table LIMIT 95,-1; // 檢索記錄行96-last.
//如果只給定一個參數,它表示傳回最大的記錄行數目:
mysql> SELECT * FROM table LIMIT 5; //擷取前5 個記錄行//也就是說,LIMIT n 等價於LIMIT 0,n。
如果你想得到最後幾個資料可以多加個order by id desc

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

以上是mysql有top查詢嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn