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

MySQLで一部のレコードをスキップしながらDESC(降順)で並べ替えたレコードを表示する方法

MySQLでは、ORDER BY句とLIMIT句を組み合わせることで、レコードを降順(DESC)に並べ替えつつ、先頭の一部をスキップして表示することが可能です。LIMIT句は「LIMIT オフセット, 件数」の形式で指定でき、オフセットの数だけレコードをスキップします。

テーブルの作成

まず、テーブルを作成しましょう。

mysql> create table DemoTable
(
    Id int,
    Name varchar(100)
);
Query OK, 0 rows affected (0.94 sec)

レコードの挿入

INSERTコマンドを使用して、テーブルにいくつかのレコードを挿入します。

mysql> insert into DemoTable values(10,'Chris');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values(1,'David');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values(4,'Bob');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values(6,'Sam');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values(7,'Mike');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values(5,'Carol');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable values(9,'John');
Query OK, 1 row affected (0.19 sec)

テーブルの全レコードを表示

SELECT文を使用して、テーブルのすべてのレコードを表示します。

mysql> select *from DemoTable;

以下のような出力が得られます。

+------+-------+
| Id   | Name |
+------+-------+
|   10 | Chris |
|    1 | David |
|    4 | Bob   |
|    6 | Sam   |
|    7 | Mike  |
|    5 | Carol |
|    9 | John  |
+------+-------+
7 rows in set (0.00 sec)

一部をスキップして降順(DESC)でレコードを表示するクエリ

以下は、一部のレコードをスキップしながら降順(DESC)でレコードを表示するクエリです。ここではlimit 3,4と指定することで、先頭の3件をスキップし、その次の4件のレコードを表示しています。

mysql> select Name from DemoTable order by Id DESC limit 3,4;

以下のような出力が得られます。

+-------+
| Name  |
+-------+
| Sam   |
| Carol |
| Bob   |
| David |
+-------+
4 rows in set (0.00 sec)

このように、ORDER BY ... DESCLIMITを組み合わせることで、降順に並べ替えた結果から任意の範囲のレコードを簡単に取得できます。ページネーション(ページ送り)機能の実装などにも応用できる、実務で役立つテクニックです。

  1. MySQLのGROUP BY句で日付をグループ化してレコードを表示する方法

    MySQLで日付をグループ化する基本 MySQLで日付データをグループ化してレコードを表示するには、GROUP BY句を使用します。この記事では、顧客ごとに出荷日の最小値と最大値を取得する例を通じて、GROUP BY句の使い方を詳しく解説します。 1. サンプルテーブルの作成 まず、顧客名と出荷日を格納するテーブルを作成します。 mysql> create table DemoTable2002 ( CustomerName varchar(20), CustomerShippingDate datetime ); Query OK, 0 rows affected (

  2. MySQLでTRUE/FALSEのレコードを0/1として表示する方法

    MySQLでTRUE/FALSEのレコードを0/1として表示する方法MySQLでは、カラムのデータ型をBOOLEANとして定義することで、TRUE/FALSEの値が自動的に0と1として表示されます。BOOLEAN型は内部的にはTINYINT(1)のエイリアスであり、TRUEは1、FALSEは0として扱われます。以下、具体的な手順を解説します。1. テーブルの作成まず、BOOLEAN型のカラムを含むテーブルを作成しましょう。mysql> create table DemoTable2035     -> (