MySQLで5日より古いすべての行を削除する
5日より古いすべての行を削除するには、次の構文を使用できます-
delete from yourTableName where datediff(now(), yourTableName.yourDateColumnName) > 5;
注 −現在の日付が2019-03-10だとします。
概念を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです-
mysql> create table deleteRowsOlderThan5Demo -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> Name varchar(100), -> Post_Date date -> ); Query OK, 0 rows affected (0.69 sec)>
挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです-
mysql> insert into deleteRowsOlderThan5Demo(Name,Post_Date) values('Larry','2019-03- 11'); Query OK, 1 row affected (0.12 sec) mysql> insert into deleteRowsOlderThan5Demo(Name,Post_Date) values('Mike','2019-02- 12'); Query OK, 1 row affected (0.17 sec) mysql> insert into deleteRowsOlderThan5Demo(Name,Post_Date) values('Sam','2019-03- 10'); Query OK, 1 row affected (0.12 sec) mysql> insert into deleteRowsOlderThan5Demo(Name,Post_Date) values('Carol','2019-03- 01'); Query OK, 1 row affected (0.23 sec) mysql> insert into deleteRowsOlderThan5Demo(Name,Post_Date) values('David','2019-01- 31'); Query OK, 1 row affected (0.19 sec) mysql> insert into deleteRowsOlderThan5Demo(Name,Post_Date) values('Maxwell','2019-01- 26'); Query OK, 1 row affected (0.10 sec) mysql> insert into deleteRowsOlderThan5Demo(Name,Post_Date) values('John','2019-02- 19'); Query OK, 1 row affected (0.12 sec)
selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです-
mysql> select *from deleteRowsOlderThan5Demo;
これが出力です-
+----+---------+------------+ | Id | Name | Post_Date | +----+---------+------------+ | 1 | Larry | 2019-03-11 | | 2 | Mike | 2019-02-12 | | 3 | Sam | 2019-03-10 | | 4 | Carol | 2019-03-01 | | 5 | David | 2019-01-31 | | 6 | Maxwell | 2019-01-26 | | 7 | John | 2019-02-19 | +----+---------+------------+ 7 rows in set (0.00 sec)
5日より古いすべての行を削除するクエリは次のとおりです-
mysql> delete from deleteRowsOlderThan5Demo -> where datediff(now(), deleteRowsOlderThan5Demo.Post_Date) > 5; Query OK, 5 rows affected (0.14 sec)
テーブルレコードをもう一度確認しましょう。クエリは次のとおりです-
mysql> select *from deleteRowsOlderThan5Demo;
これが出力です-
+----+-------+------------+ | Id | Name | Post_Date | +----+-------+------------+ | 1 | Larry | 2019-03-11 | | 3 | Sam | 2019-03-10 | +----+-------+------------+ 2 rows in set (0.00 sec)
-
14日より新しい日付をフェッチするMySQLクエリ?
まず、-を作成しましょう mysql> create table DemoTable1392 -> ( -> ArrivalDate date -> ); Query OK, 0 rows affected (0.43 sec) insert-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1392 values('2019-09-10'); Query OK, 1 row affected (0
-
MySQLで1日より古いタイムスタンプで更新された行をフェッチしますか?
このために、yYouはnow()と一緒にfrom_unixtime()を使用できます。 いくつかのデータ型でテーブルを作成しましょう- 例 mysql> create table demo75 -> ( -> due_date int(11) -> ); Query OK, 0 rows affected, 1 warning (2.87 挿入コマンド-を使用して、いくつかのレコードをテーブルに挿入します。 例 mysql> insert into demo75 values(uni