在 MySQL 中選擇前 N 行
有時,你必須根據專案要求選擇 MySQL 資料庫的前 N 行。
n
的值根據要求而變化;它可以是 TOP 1 行或 TOP 30 行。我們將學習如何使用 MySQL 資料庫中的 LIMIT
子句選擇前 N 行。
你可以通過在分頁中使用這些查詢、查詢最近的購買或交易來從這些查詢中受益。同樣重要的是要注意每個資料庫都有不同的語法來完成此功能。
SQL Server 使用 SELECT TOP
,MySQL 使用 LIMIT
,Oracle 使用 ROWNUM
和 FETCH FIRST n ROWS ONLY
。
使用 LIMIT
子句選擇 MySQL 中的前 N 行
使用 Top N 查詢意味著你希望將結果限制為一定數量的行。這些用於從結果集中獲取最佳或最近的行。
在本教程中,我們使用了一個名為 customer
的表,其中包含 customer_id
、customer_firstname
、customer_lastname
和 customer_age
。我們用一些目前看起來如下的資料填充了這個 customer
表。
我們將使用 customer
表來練習 MySQL 中的 LIMIT
。我們想從 customer
表中選擇 TOP 3 記錄。
示例程式碼:
SELECT * FROM customer LIMIT 3;
輸出:
我們希望獲得三個最年輕的客戶並對其進行分析以進行預測。你可以看到以下程式碼示例。
示例程式碼:
SELECT * FROM customer
ORDER BY customer_age ASC
LIMIT 3;
首先,表格資料將根據 customer_age
進行排序。最年輕的客戶
將位於頂部,年長的將位於底部。
然後從有序資料的結果集中選擇前 3 行。請參閱以下螢幕截圖。
輸出:
如果要從偏移量 3
開始選擇前 4 行怎麼辦?你可以使用以下語法來做到這一點。
SELECT * FROM you_table_name
ORDER BY column_name ASC
LIMIT offset,row_count;
永遠記住,LIMIT
子句中第一行的 offset 從 0
開始。這是此方案的示例程式碼。
示例程式碼:
SELECT * FROM customer
ORDER BY customer_age ASC
LIMIT 3,4;
輸出:
或者,我們也可以通過以下方式使用帶有行數和偏移量的 LIMIT
子句。
# You can also write the above query in this way
SELECT * FROM person.customer
ORDER BY customer_age ASC
LIMIT 1 OFFSET 4;
輸出:
你還可以通過將查詢中的 ASC
替換為 DESC
以降序排列你的表格。
まとめ
我們得出的結論是,我們可以根據專案要求限制結果集中的行數。
我們可以選擇從 m 開始的前 n 行或前 n 行。我們還瞭解到 LIMIT
子句可以在有/沒有 ORDER BY
的情況下使用。