MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

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)

  1. 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

  2. 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