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

MySQLで最初の10レコードを選択するクエリの作成方法

はじめに

MySQLでテーブルの最初の10件のレコードを取得したい場合は、まずレコードを昇順(ASC)または降順(DESC)で並べ替え、そのうえで LIMIT 10 を使用することで、先頭の10件だけを取り出すことができます。

基本構文

select *from (select *from yourTableName ORDER BY yourColumnName ASC LIMIT 10)anyAliasName ORDER BY yourColumnName DESC;

このクエリでは、サブクエリ内で指定したカラムを基準に昇順へ並べ替えた先頭10件を取得し、外側のクエリでその結果を降順に並べ替えて表示しています。

サンプルテーブルの作成

まず、動作を確認するためのテーブルを作成しましょう。

mysql> create table DemoTable683(Page int);
Query OK, 0 rows affected (0.83 sec)

レコードの挿入

続いて、insertコマンドを使用してテーブルに複数のレコードを挿入します。

mysql> insert into DemoTable683 values(100);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable683 values(101);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable683 values(102);
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable683 values(103);
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable683 values(104);
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable683 values(105);
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable683 values(106);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable683 values(107);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable683 values(108);
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable683 values(109);
Query OK, 1 row affected (0.28 sec)
mysql> insert into DemoTable683 values(110);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable683 values(111);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable683 values(112);
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable683 values(113);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable683 values(114);
Query OK, 1 row affected (0.10 sec)

テーブルの全レコードを確認する

selectステートメントを実行して、テーブル内のすべてのレコードを表示してみましょう。

mysql> select *from DemoTable683;

上記のクエリを実行すると、次のような出力が得られます。

+------+
| Page |
+------+
|  100 |
|  101 |
|  102 |
|  103 |
|  104 |
|  105 |
|  106 |
|  107 |
|  108 |
|  109 |
|  110 |
|  111 |
|  112 |
|  113 |
|  114 |
+------+
15 rows in set (0.00 sec)

このように、テーブルには合計15件のレコードが登録されていることがわかります。

最初の10レコードを取得するクエリ

それでは、MySQLで最初の10レコードを選択する実際のクエリを見てみましょう。

mysql> select *from (select *from DemoTable683 ORDER BY Page ASC LIMIT 10)tbl ORDER BY Page DESC;

このクエリを実行すると、以下のような出力が得られます。

+------+
| Page |
+------+
|  109 |
|  108 |
|  107 |
|  106 |
|  105 |
|  104 |
|  103 |
|  102 |
|  101 |
|  100 |
+------+
10 rows in set (0.00 sec)

実行結果から、Pageカラムの値が小さい方から数えて10件目までのレコード(100〜109)が正しく取得され、降順で表示されていることが確認できます。この手法を使えば、任意のテーブルから特定の順序での先頭N件を簡単に抽出できます。

  1. MySQLクエリで「〜より大きくない」条件を記述する方法

    MySQLで「〜より大きくない」を表すには?MySQLのクエリにおいて「〜より大きくない(not greater than)」という条件は、比較演算子の「〜以下(<=)」を使うことで簡単に表現できます。基本の構文は次のとおりです。select * from テーブル名 where カラム名<=値;サンプルテーブルを作成するまず、動作確認用のテーブルを作成しましょう。mysql> create table DemoTable1480 -> ( -> StudentName varchar(40), -> StudentMarks int

  2. MySQLで月を指定してデータを抽出する方法(MONTH()関数の使い方)

    MySQLで日付データから特定の「月」に該当するレコードだけを抽出したい場合は、MONTH()関数を使うのが便利です。この記事では、実際にテーブルを作成し、サンプルデータを挿入しながら、月を条件にしたSELECT文の書き方を具体的に解説します。1. サンプルテーブルの作成まずは、出荷日(Shippingdate)を格納するdatetime型のカラムを持つテーブルを作成します。mysql> create table DemoTable1599    -> (    -> Shippingdate d