MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

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アプリケーションなどでよく使われるページネーション機能も簡単に実装できます。

  1. MySQLでSELECTクエリを使用してデータを挿入(INSERT)する方法

    MySQLでは、INSERT文とSELECTクエリを組み合わせることで、テーブルにデータを挿入することができます。通常、SELECTは既存のテーブルからデータを取得するために使われますが、値を直接指定してINSERTを実行する際にも活用できる便利な手法です。基本構文SELECTクエリを使用してINSERTを実行する場合の構文は以下の通りです。insert into yourTableName(yourColumnName1,yourColumnName2,yourColumnName3,...N) select yourValue1,yourValue2,yourValue3,......N;

  2. MySQLで通貨形式を表示する方法:FORMAT()関数の使い方を解説

    MySQLで通貨形式を設定する方法MySQLでは、FORMAT()関数を使うことで、数値データを通貨として見やすい形式に整形して表示できます。この記事では、実際にテーブルを作成し、金額データを「USD 90,948,484.00」のような通貨表記へ変換する手順を、サンプルコード付きでわかりやすく解説します。1. サンプルテーブルを作成するまず、金額を格納するためのテーブルを作成します。ここでは、小数点以下4桁まで保持できるDECIMAL型を使用します。mysql> create table DemoTable    -> ( &nb