MySQLでタイムスタンプ値を昇順に並べ替える方法:TIMESTAMP()関数とORDER BYの使い方
MySQLでは、TIMESTAMP()関数とORDER BY ASCを組み合わせることで、タイムスタンプ値を昇順(古い順)に並べ替えることができます。
基本構文
TIMESTAMP()関数を使って昇順にソートする場合の基本構文は以下の通りです。
SELECT timestamp( yourTimestampColumnName ) as anyAliasName From yourTableName order by 1 ASC
ここで order by 1 の「1」は、SELECT句の1番目のカラム(この場合はエイリアスを付けたTIMESTAMP()の結果)を基準に並べ替えることを意味します。
サンプルテーブルの作成
実際に動作を確認するために、まずテーブルを作成しましょう。テーブル作成用のクエリは次の通りです。
mysql> create table Timestamp_TableDemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> yourTimestamp timestamp -> ); Query OK, 0 rows affected (0.83 sec)
レコードの挿入
続いて、INSERT文を使ってテーブルにいくつかのレコードを挿入します。クエリは以下の通りです。
mysql> insert into Timestamp_TableDemo(yourTimestamp) values('2019-02-06 17:34:57');
Query OK, 1 row affected (0.14 sec)
mysql> insert into Timestamp_TableDemo(yourTimestamp) values('2019-02-06 17:32:30');
Query OK, 1 row affected (0.25 sec)
mysql> insert into Timestamp_TableDemo(yourTimestamp) values('2019-02-06 17:32:09');
Query OK, 1 row affected (0.14 sec)全レコードの表示
SELECT文ですべてのレコードを表示して、現在のデータを確認してみましょう。
mysql> select *from Timestamp_TableDemo;
実行結果は以下の通りです。現時点では挿入した順序のまま表示されていることがわかります。
+----+---------------------+ | Id | yourTimestamp | +----+---------------------+ | 1 | 2019-02-06 17:34:57 | | 2 | 2019-02-06 17:32:30 | | 3 | 2019-02-06 17:32:09 | +----+---------------------+ 3 rows in set (0.00 sec)
TIMESTAMP()関数で昇順に並べ替える
それでは、TIMESTAMP()関数を使用してタイムスタンプ値を昇順に並べ替えるクエリを実行します。
mysql> SELECT timestamp( yourTimestamp) as 'timestampDemo' -> from Timestamp_TableDemo -> order by 1 asc;
実行結果は以下の通りです。タイムスタンプが古いものから新しいものへと正しく昇順にソートされています。
+---------------------+ | timestampDemo | +---------------------+ | 2019-02-06 17:32:09 | | 2019-02-06 17:32:30 | | 2019-02-06 17:34:57 | +---------------------+ 3 rows in set (0.00 sec)
補足:DESCで降順にするには
逆に、新しいタイムスタンプから順に表示したい場合は、order by 1 descのようにDESCキーワードを指定するだけで降順ソートが可能です。また、単純にカラム全体をソートするだけであれば、TIMESTAMP()関数を使わずに SELECT * FROM テーブル名 ORDER BY yourTimestamp ASC; と書くこともできます。
-
MySQLで重複する列の値を1回だけ返す方法(DISTINCT句の使い方)
MySQLで重複する値を1回だけ取得するには?MySQLでテーブル内の重複する列の値を1回だけ返したい場合は、DISTINCT句を使用します。本記事では、実際にサンプルテーブルを作成し、DISTINCT句の基本的な使い方を順を追って解説します。サンプルテーブルの作成まず、例として以下のようなテーブルを作成します。mysql> create table DemoTable680(Status varchar(100));Query OK, 0 rows affected (0.75 sec)レコードの挿入次に、INSERTコマンドを使ってテーブルにレコードを挿入します。ここでは意図的に「B
-
MySQLで特定の値を先頭に表示し、残りのレコードを昇順で並べ替える方法
はじめにMySQLでは、ORDER BY句に条件式を組み合わせることで、特定の値を持つ行を最前面に表示し、残りの行を昇順で並べ替えることができます。この記事では、具体的な手順をサンプルコードとともに解説します。テーブルの作成まず、サンプル用のテーブルを作成します。mysql> create table DemoTable -> ( -> MonthNumber int -> );Query OK, 0 rows affected (1.68 sec)レコードの挿入次に、INSERTコマンドを使ってテーブルに複数のレコードを挿入します。mysql>