MySQLの日付値を持つレコードから最終日を見つける方法は?
最終日、つまり最新の日付を取得するには、サブクエリで集計関数MAX()を使用します。まずテーブルを作成しましょう-
mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, ExpiryDate date ); Query OK, 0 rows affected (1.40 sec)
挿入コマンド-
を使用して、テーブルにいくつかのレコードを挿入しますmysql> insert into DemoTable(ExpiryDate) values('2018-12-31'); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable(ExpiryDate) values('2019-09-01'); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable(ExpiryDate) values('2019-09-01'); Query OK, 1 row affected (0.07 sec) mysql> insert into DemoTable(ExpiryDate) values('2016-08-30'); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable(ExpiryDate) values('2019-06-23'); Query OK, 1 row affected (0.17 sec)
selectステートメントを使用してテーブルのすべてのレコードを表示する-
mysql> select *from DemoTable;
これにより、次の出力が生成されます-
+----+------------+ | Id | ExpiryDate | +----+------------+ | 1 | 2018-12-31 | | 2 | 2019-09-01 | | 3 | 2019-09-01 | | 4 | 2016-08-30 | | 5 | 2019-06-23 | +----+------------+ 5 rows in set (0.00 sec)
以下は、最終日付のレコードを検索するためのクエリです-
mysql> select *from DemoTable where ExpiryDate=(select max(ExpiryDate) from DemoTable);
これにより、次の出力が生成されます。挿入されたレコードから、最終日は2019-09-0です。以下の出力でも同じことがわかります-
+----+------------+ | Id | ExpiryDate | +----+------------+ | 2 | 2019-09-01 | | 3 | 2019-09-01 | +----+------------+ 2 rows in set (0.00 sec)
-
比較演算子はMySQLの日付値とどのように連携しますか?
日付間の比較演算子は論理的に機能します。次の例では、2つの日付を比較しながら、MySQLは単に2つの数値または文字列を比較しています- mysql> select 20171027 < 20150825; +---------------------------+ | 20171027 < 20150825 | +---------------------------+ | 0 &nb
-
MySQLから最後の10行を選択するにはどうすればよいですか?
MySQLから最後の10行を選択するには、SELECTステートメントとLimitの概念でサブクエリを使用できます。以下は例です。 テーブルを作成します。 mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.75 sec) テーブルにレコードを挿入します。 mysql> insert into Last10RecordsDemo values(1,John),(