MySQLで日付データを降順に並べ替える方法:ORDER BY DESCの基本的な使い方
MySQLでは、UPDATEコマンドにORDER BY句をそのまま組み合わせて使うことはできません。しかし、SELECT文に「ORDER BY 〜 DESC」を指定すれば、日付データを降順(新しい順)に並べ替えて取得できます。
この記事では、実際にテーブルを作成し、日付を降順にソートするまでの一連の手順を解説します。
1. サンプルテーブルを作成する
まずは、timestamp型の「DueDate(期限日)」カラムを持つテーブルを作成します。
mysql> create table DemoTable1403
-> (
-> DueDate timestamp
-> );
Query OK, 0 rows affected (1.26 sec)
2. レコードを挿入する
insert文を使って、複数の日付データを登録します。
mysql> insert into DemoTable1403 values('2019-09-29');
Query OK, 1 row affected (0.31 sec)
mysql> insert into DemoTable1403 values('2016-02-21');
Query OK, 1 row affected (0.31 sec)
mysql> insert into DemoTable1403 values('2018-01-31');
Query OK, 1 row affected (0.65 sec)
mysql> insert into DemoTable1403 values('2017-12-01');
Query OK, 1 row affected (0.27 sec)3. 登録したレコードを確認する
select文ですべてのレコードを表示してみましょう。
mysql> select * from DemoTable1403;
実行結果は以下の通りです。現時点では挿入した順番のまま表示されています。
+---------------------+
| DueDate |
+---------------------+
| 2019-09-29 00:00:00 |
| 2016-02-21 00:00:00 |
| 2018-01-31 00:00:00 |
| 2017-12-01 00:00:00 |
+---------------------+
4 rows in set (0.00 sec)
4. ORDER BY DESCで日付を降順に並べ替える
ここからが本題です。以下のように、ORDER BY句に「DESC」を付けてクエリを実行すると、日付が新しい順に並べ替えられます。
mysql> select * from DemoTable1403 order by DueDate DESC;
実行結果は以下の通りです。
+---------------------+
| DueDate |
+---------------------+
| 2019-09-29 00:00:00 |
| 2018-01-31 00:00:00 |
| 2017-12-01 00:00:00 |
| 2016-02-21 00:00:00 |
+---------------------+
4 rows in set (0.00 sec)
まとめ
UPDATE文にORDER BY句を直接使用することはできませんが、SELECT文であれば「ORDER BY カラム名 DESC」と書くだけで、日付を簡単に降順ソートできます。最新のデータから順に確認したい場合などに活用してみてください。なお、昇順(古い順)で並べたい場合は、「ASC」を指定するか、単に「ORDER BY カラム名」だけでも可能です。
-
JavaのPreparedStatementを使ってMySQLテーブルを更新する方法
JavaからMySQLのテーブルを更新するには、PreparedStatementを使用するのが一般的で安全な方法です。PreparedStatementを使うことで、SQLインジェクションを防ぎつつ、パラメータを動的に設定できます。この記事では、実際にテーブルを作成し、Javaプログラムからレコードを更新するまでの一連の手順を解説します。1. テーブルの作成まず、MySQLで更新用のテーブルを作成しましょう。mysql> create table DemoTable( Id int, FirstName varchar(40) ); Query OK, 0 rows a
-
MySQLテーブルを一括更新する方法|ADDTIME関数で複数行の時刻データをまとめて変更
MySQLでは、UPDATE文と関数を組み合わせることで、テーブル内の複数のレコードを一度に一括更新(バッチ更新)できます。本記事では、時刻型(TIME型)のカラムに対してADDTIME関数を使い、すべての行の時刻をまとめて加算・更新する手順を、実際のSQL文と実行結果付きでわかりやすく解説します。1. サンプルテーブルを作成するまず、時刻データを格納するためのテーブル「DemoTable」を作成します。mysql> create table DemoTable -> ( -> Bre