MySQLで上位10件のレコードを取得するには?LIMIT句の使い方を解説
MySQLでテーブルから上位10件のレコードを取得したい場合は、LIMIT句を使用します。LIMIT句を使うことで、取得する行数や開始位置を柔軟に指定でき、ページネーション(ページ送り)の実装にも役立ちます。
ここでは、実際にテーブルを作成し、データを挿入して、上位10件を取得する手順を順番に見ていきましょう。
1. テーブルの作成
まず、サンプル用のテーブルを作成します。PageNumberというカラムを持つ「DemoTable」を作成しましょう。
mysql> create table DemoTable -> ( -> PageNumber text -> ); Query OK, 0 rows affected (2.50 sec)
2. レコードの挿入
次に、INSERT文を使って14件のレコードをテーブルに追加します。
mysql> insert into DemoTable values('Page-1');
Query OK, 1 row affected (0.46 sec)
mysql> insert into DemoTable values('Page-2');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values('Page-3');
Query OK, 1 row affected (0.27 sec)
mysql> insert into DemoTable values('Page-4');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values('Page-5');
Query OK, 1 row affected (0.27 sec)
mysql> insert into DemoTable values('Page-6');
Query OK, 1 row affected (1.12 sec)
mysql> insert into DemoTable values('Page-7');
Query OK, 1 row affected (1.21 sec)
mysql> insert into DemoTable values('Page-8');
Query OK, 1 row affected (1.15 sec)
mysql> insert into DemoTable values('Page-9');
Query OK, 1 row affected (0.89 sec)
mysql> insert into DemoTable values('Page-10');
Query OK, 1 row affected (1.20 sec)
mysql> insert into DemoTable values('Page-11');
Query OK, 1 row affected (0.86 sec)
mysql> insert into DemoTable values('Page-12');
Query OK, 1 row affected (0.39 sec)
mysql> insert into DemoTable values('Page-13');
Query OK, 1 row affected (0.39 sec)
mysql> insert into DemoTable values('Page-14');
Query OK, 1 row affected (0.47 sec)
3. 全レコードの確認
SELECT文を実行して、テーブル内のすべてのレコードを表示してみましょう。
mysql> select *from DemoTable;
出力結果
上記のクエリを実行すると、次のような結果が得られます。
+------------+ | PageNumber | +------------+ | Page-1 | | Page-2 | | Page-3 | | Page-4 | | Page-5 | | Page-6 | | Page-7 | | Page-8 | | Page-9 | | Page-10 | | Page-11 | | Page-12 | | Page-13 | | Page-14 | +------------+ 14 rows in set (0.00 sec)
このように、合計14件のレコードが登録されていることが確認できます。
4. 上位10件だけを取得するクエリ
いよいよ本題です。上位10件のレコードを取得するには、以下のようにLIMIT 0,10を指定します。
mysql> select *from DemoTable limit 0,10;
出力結果
実行すると、先頭から10件分のレコードのみが表示されます。
+------------+ | PageNumber | +------------+ | Page-1 | | Page-2 | | Page-3 | | Page-4 | | Page-5 | | Page-6 | | Page-7 | | Page-8 | | Page-9 | | Page-10 | +------------+ 10 rows in set (0.00 sec)
LIMIT句の書き方のポイント
LIMIT句は「LIMIT 開始位置, 取得件数」という形式で指定できます。
- LIMIT 0,10:0番目(先頭)から10件取得
- LIMIT 10,10:11番目から10件取得(2ページ目相当)
- LIMIT 10:開始位置を省略した場合も先頭から10件取得(LIMIT 0,10と同じ意味)
なお、MySQLでは開始位置は0から始まる点に注意してください。この仕組みを活用すれば、Webアプリケーションなどでよく使われるページネーション機能も簡単に実装できます。
-
MySQLでSELECTクエリを使用してデータを挿入(INSERT)する方法
MySQLでは、INSERT文とSELECTクエリを組み合わせることで、テーブルにデータを挿入することができます。通常、SELECTは既存のテーブルからデータを取得するために使われますが、値を直接指定してINSERTを実行する際にも活用できる便利な手法です。基本構文SELECTクエリを使用してINSERTを実行する場合の構文は以下の通りです。insert into yourTableName(yourColumnName1,yourColumnName2,yourColumnName3,...N) select yourValue1,yourValue2,yourValue3,......N;
-
MySQLで通貨形式を表示する方法:FORMAT()関数の使い方を解説
MySQLで通貨形式を設定する方法MySQLでは、FORMAT()関数を使うことで、数値データを通貨として見やすい形式に整形して表示できます。この記事では、実際にテーブルを作成し、金額データを「USD 90,948,484.00」のような通貨表記へ変換する手順を、サンプルコード付きでわかりやすく解説します。1. サンプルテーブルを作成するまず、金額を格納するためのテーブルを作成します。ここでは、小数点以下4桁まで保持できるDECIMAL型を使用します。mysql> create table DemoTable -> ( &nb