Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

แบบสอบถาม MySQL เพื่อลบ DATE ที่เก่ากว่า 30 วันจากวันที่อื่น?


ต่อไปนี้เป็นไวยากรณ์ -

ลบจาก yourTableName ที่ yourColumnName <(yourAnotherDateValue - INTERVAL 30 DAY);

ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable (วันที่ครบกำหนด) แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.68 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable ('2019-08-25'); Query OK, 1 แถวได้รับผลกระทบ (0.20 วินาที)mysql> แทรกลงในค่า DemoTable ('2019-07-01'); Query OK, 1 แถว ได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงในค่า DemoTable ('2019-06-20'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงในค่า DemoTable ('2019-09-02'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.14 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -

mysql> เลือก *จาก DemoTable;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-----------+| DueDate |+-----------+| 2019-08-25 || 2019-07-01 || 2019-06-20 || 2019-09-02 |+------------+4 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นข้อความค้นหาเพื่อลบ DATE ที่เก่ากว่า 30 วันจากวันที่อื่น -

mysql> ลบออกจาก DemoTable โดยที่ DueDate <('2019-08-31' - INTERVAL 30 DAY) ตกลง ตกลง 2 แถวได้รับผลกระทบ (0.22 วินาที)

ให้เราตรวจสอบบันทึกตารางอีกครั้ง -

mysql> เลือก *จาก DemoTable;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-----------+| DueDate |+-----------+| 2019-08-25 || 2019-09-02 |+------------+2 แถวในชุด (0.00 วินาที)