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

MySQLデータベースから先頭10件のレコードを取得する方法

MySQLで先頭10件のデータを取得する基本

MySQLデータベースから先頭(最初)の10件のレコードを取得するには、SQLのORDER BY句とLIMIT 10を組み合わせて使用します。

基本的な構文は以下のとおりです。

SELECT * FROM テーブル名 ORDER BY IDカラム名 LIMIT 10;

ORDER BY句で並べ替えの基準となるカラムを指定し、LIMIT 10によって取得件数を10件に制限します。IDカラムで昇順に並べ替えれば、登録順に先頭10件を取得できます。

動作確認用テーブルの作成

実際に構文を理解するために、サンプルテーブルを作成してみましょう。テーブル作成クエリは次のとおりです。

mysql> create table Clients
    -> (
    -> Client_Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> ClientName varchar(20)
    -> );
Query OK, 0 rows affected (0.51 sec)

このテーブルは、自動採番されるClient_Idを主キーとし、顧客名を格納するClientNameカラムを持っています。

サンプルデータの挿入

次に、INSERT文を使って複数のレコードを挿入します。

mysql> insert into Clients(ClientName) values('Larry');
Query OK, 1 row affected (0.09 sec)
mysql> insert into Clients(ClientName) values('Sam');
Query OK, 1 row affected (0.19 sec)
mysql> insert into Clients(ClientName) values('Bob');
Query OK, 1 row affected (0.18 sec)
mysql> insert into Clients(ClientName) values('David');
Query OK, 1 row affected (0.15 sec)
mysql> insert into Clients(ClientName) values('John');
Query OK, 1 row affected (0.17 sec)
mysql> insert into Clients(ClientName) values('James');
Query OK, 1 row affected (0.14 sec)
mysql> insert into Clients(ClientName) values('Robert');
Query OK, 1 row affected (0.11 sec)
mysql> insert into Clients(ClientName) values('Carol');
Query OK, 1 row affected (0.15 sec)
mysql> insert into Clients(ClientName) values('Mike');
Query OK, 1 row affected (0.12 sec)
mysql> insert into Clients(ClientName) values('Maxwell');
Query OK, 1 row affected (0.27 sec)
mysql> insert into Clients(ClientName) values('Chris');
Query OK, 1 row affected (0.23 sec)
mysql> insert into Clients(ClientName) values('Ramit');
Query OK, 1 row affected (0.18 sec)

これで合計12件のレコードが登録されました。

全レコードの表示

まず、SELECT文ですべてのレコードを表示して確認します。

mysql> select *from Clients;

実行結果は以下のとおりです。

+-----------+------------+
| Client_Id | ClientName |
+-----------+------------+
|         1 | Larry      |
|         2 | Sam        |
|         3 | Bob        |
|         4 | David      |
|         5 | John       |
|         6 | James      |
|         7 | Robert     |
|         8 | Carol      |
|         9 | Mike       |
|        10 | Maxwell    |
|        11 | Chris      |
|        12 | Ramit      |
+-----------+------------+
12 rows in set (0.00 sec)

ORDER BYとLIMITを使って先頭10件を取得する

それでは、先頭10件のレコードを取得するクエリを見てみましょう。

mysql> select *from Clients ORDER BY Client_Id LIMIT 10;

実行結果は以下のとおりです。

+-----------+------------+
| Client_Id | ClientName |
+-----------+------------+
|         1 | Larry      |
|         2 | Sam        |
|         3 | Bob        |
|         4 | David      |
|         5 | John       |
|         6 | James      |
|         7 | Robert     |
|         8 | Carol      |
|         9 | Mike       |
|        10 | Maxwell    |
+-----------+------------+
10 rows in set (0.00 sec)

Client_Idで昇順に並べ替えたうえで10件に制限しているため、IDが1〜10のレコードが正しく取得できています。

代替方法:LIMIT句にオフセットを指定する

先頭10件を取得する別の方法として、LIMIT句にオフセット(開始位置)を指定する書き方もあります。

mysql> select *from Clients limit 0,10;

実行結果は以下のとおりです。

+-----------+------------+
| Client_Id | ClientName |
+-----------+------------+
|         1 | Larry      |
|         2 | Sam        |
|         3 | Bob        |
|         4 | David      |
|         5 | John       |
|         6 | James      |
|         7 | Robert     |
|         8 | Carol      |
|         9 | Mike       |
|        10 | Maxwell    |
+-----------+------------+
10 rows in set (0.00 sec)

LIMIT 0,10は「0番目(先頭)から10件取得する」という意味です。この形式はページネーション(ページ送り)を実装する際にも便利で、例えばLIMIT 10,10とすれば11件目から10件を取得できます。

まとめ

  • 先頭N件を取得するにはORDER BY句とLIMIT句を組み合わせる
  • LIMIT 取得件数またはLIMIT オフセット, 取得件数の2つの書き方が使える
  • 並び順を安定させるため、主キーなどのカラムを明示的に指定することが推奨される
  1. MySQLで再帰的なSELECTクエリを実行する方法【初心者向けに具体例つきで解説】

    MySQLでは、ユーザー定義変数(セッション変数)を活用することで、再帰的なSELECTクエリを実現できます。本記事では、実際にテーブルを作成し、データを挿入したうえで、再帰的なSELECTの具体的な書き方を順を追って解説します。 1. サンプルテーブルの作成 まず、再帰的なSELECTを試すためのサンプルテーブルを作成します。テーブルの作成にはCREATEコマンドを使用します。 mysql> CREATE table tblSelectDemo - > ( - > id int, - > name varchar(100) - > );

  2. MySQLでテーブルの最後の10件のレコードを取得する方法

    MySQLでテーブルの末尾にある10行(最新の10件)を取得したい場合は、SELECT文とLIMIT句を組み合わせたサブクエリを利用します。この記事では、実際にテーブルを作成し、データを挿入しながら、最後の10件を取得するクエリの手順を具体的に解説します。 1. サンプルテーブルの作成 まず、動作確認用のテーブルを作成します。 mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected