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

別の日付から30日より古い日付を削除するMySQLクエリ?


以下は構文です-

delete from yourTableName where yourColumnName < (yourAnotherDateValue - INTERVAL 30 DAY);
を削除します。

まずテーブルを作成しましょう-

mysql> create table DemoTable
(
   DueDate date
);
Query OK, 0 rows affected (0.68 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable values('2019-08-25');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable values('2019-07-01');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('2019-06-20');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values('2019-09-02');
Query OK, 1 row affected (0.14 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select *from DemoTable;

これにより、次の出力が生成されます-

+------------+
| DueDate    |
+------------+
| 2019-08-25 |
| 2019-07-01 |
| 2019-06-20 |
| 2019-09-02 |
+------------+
4 rows in set (0.00 sec)

以下は、別の日付から30日より古い日付を削除するためのクエリです-

mysql> delete from DemoTable where DueDate < ('2019-08-31' - INTERVAL 30 DAY);
Query OK, 2 rows affected (0.22 sec)

テーブルレコードをもう一度確認しましょう-

mysql> select *from DemoTable;

これにより、次の出力が生成されます-

+------------+
| DueDate    |
+------------+
| 2019-08-25 |
| 2019-09-02 |
+------------+
2 rows in set (0.00 sec)

  1. MySQLでタイムスタンプが5分より古いレコードを削除しますか?

    これには、DELETEコマンドを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1851      (      DueDate datetime      ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1851 values('2019-12-03 21:30:35'

  2. 単一のクエリでIN()を使用してMySQLテーブルからレコードを削除する

    テーブルを作成しましょう- mysql> create table DemoTable1922    (    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    StudentName varchar(20)    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1922(StudentNa