MySQL の上位 N 行を選択する
 
プロジェクトの要件によっては、MySQL データベースの上位 N 行を選択する必要がある場合があります。
n の値は要件によって異なります。TOP1 行または TOP30 行にすることができます。MySQL データベースの LIMIT 句を使用して上位 N 行を選択する方法を学習します。
これらのクエリは、ページングで使用したり、最近の購入やトランザクションを検索したりすることで利用できます。この機能を実行するには、データベースごとに構文が異なることに注意することも重要です。
SQL Server は SELECT TOP を使用し、MySQL は LIMIT を使用し、Oracle は ROWNUM と FETCH FIRST n ROWS ONLY を使用します。
LIMIT 句を使用して MySQL の上位 N 行を選択する
トップ N クエリを使用するということは、結果を特定の行数に制限することを意味します。これらは、結果セットから最良または最新の行を取得するために使用されます。
このチュートリアルでは、customer_id、customer_firstname、customer_lastname、および customer_age を持つ customer という名前のテーブルを使用しています。この customer テーブルに、現時点で次のようなデータを入力しました。

customer テーブルを使用して、MySQL で LIMIT を練習します。customer テーブルから上位 3つのレコードを選択します。
サンプルコード:
SELECT * FROM customer LIMIT 3;
出力:

最年少の 3 人の顧客を獲得し、予測のために分析したいと考えています。次のコードサンプルを見ることができます。
サンプルコード:
SELECT * FROM customer
ORDER BY customer_age ASC
LIMIT 3;
まず、テーブルデータは customer_age に関して順序付けられます。最年少の customer が一番上になり、古い方が一番下になります。
次に、順序付けされたデータの結果セットから上位 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 に置き換えることにより、テーブルを降順で並べ替えることもできます。
まとめ
プロジェクトの要件に応じて、結果セットの行数を制限できると結論付けました。
また、LIMIT 句は ORDER BY と一緒に使うことも、ORDER BY なしに使うこともできることを学びました。
