ใช้ DELETE WHERE date_column < NOW() - INTERVAL 30 DAY
สร้างตารางตัวอย่าง
mysql> CREATE TABLE DemoTable (
-> UserMessage TEXT,
-> UserMessageSentDate DATE
-> );
เพิ่มข้อมูลตัวอย่าง
mysql> INSERT INTO DemoTable VALUES('Hi', '2019-06-01');
mysql> INSERT INTO DemoTable VALUES('Hello', '2019-07-02');
mysql> INSERT INTO DemoTable VALUES('Awesome', '2019-05-04');
mysql> INSERT INTO DemoTable VALUES('Good', '2019-01-10');
แสดงข้อมูล
mysql> SELECT * FROM DemoTable;
ผลลัพธ์:
+-------------+---------------------+ | UserMessage | UserMessageSentDate | +-------------+---------------------+ | Hi | 2019-06-01 | | Hello | 2019-07-02 | | Awesome | 2019-05-04 | | Good | 2019-01-10 | +-------------+---------------------+
คำสั่งลบข้อมูลเก่ากว่า 30 วัน (จากวันนี้)
mysql> DELETE FROM DemoTable WHERE UserMessageSentDate < NOW() - INTERVAL 30 DAY;
ตรวจสอบข้อมูลที่เหลือ
mysql> SELECT * FROM DemoTable;
ผลลัพธ์ (เหลือแค่ Hello วันที่ 2019-07-02):
+-------------+---------------------+ | UserMessage | UserMessageSentDate | +-------------+---------------------+ | Hello | 2019-07-02 | +-------------+---------------------+
คำเตือน: ใช้ NOW() สำหรับ DATETIME, CURDATE() สำหรับ DATE ให้ตรงชนิดข้อมูล และทดสอบด้วย SELECT ก่อน DELETE จริง