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 ... DESCとLIMITを組み合わせることで、降順に並べ替えた結果から任意の範囲のレコードを簡単に取得できます。ページネーション(ページ送り)機能の実装などにも応用できる、実務で役立つテクニックです。
-
MySQLのGROUP BY句で日付をグループ化してレコードを表示する方法
MySQLで日付をグループ化する基本 MySQLで日付データをグループ化してレコードを表示するには、GROUP BY句を使用します。この記事では、顧客ごとに出荷日の最小値と最大値を取得する例を通じて、GROUP BY句の使い方を詳しく解説します。 1. サンプルテーブルの作成 まず、顧客名と出荷日を格納するテーブルを作成します。 mysql> create table DemoTable2002 ( CustomerName varchar(20), CustomerShippingDate datetime ); Query OK, 0 rows affected (
-
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 -> (