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

แบบสอบถาม MySQL เพื่อลบแถวทั้งหมดที่เก่ากว่า 30 วัน?


หากต้องการลบแถวทั้งหมดที่เก่ากว่า 30 วัน คุณต้องใช้ DELETE พร้อม INTERVAL ใช้

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

mysql> สร้างตาราง DemoTable -> ( -> ข้อความ UserMessage, -> วันที่ UserMessageSentDate -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.59 วินาที)

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

mysql> แทรกลงในค่า DemoTable ('Hi','2019-06-01'); เคียวรีตกลง, 1 แถวได้รับผลกระทบ (0.11 วินาที)mysql> แทรกลงในค่า DemoTable ('สวัสดี','2019-07-02 '); ตกลงแบบสอบถาม 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า DemoTable ('ยอดเยี่ยม', '2019-05-04'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงในค่า DemoTable ( 'ดี','2019-01-10');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.35 วินาที)

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

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

ผลลัพธ์

<ก่อนหน้า>+-------------+---------------------+| ข้อความผู้ใช้ | UserMessageSentDate |+-------------+---------------------+| สวัสดี | 2019-06-01 || สวัสดี | 2019-07-02 || สุดยอด | 2019-05-04 || ดี | 2019-01-10 |+-------------+---------------------+4 แถวในชุด (0.00 วินาที )

ต่อไปนี้เป็นแบบสอบถามเพื่อลบแถวทั้งหมดที่เก่ากว่า 30 วัน -

mysql> ลบออกจาก DemoTable โดยที่ UserMessageSentDate  

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

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

ผลลัพธ์

<ก่อนหน้า>+-------------+---------------------+| ข้อความผู้ใช้ | UserMessageSentDate |+-------------+---------------------+| สวัสดี | 2019-07-02 |+-------------+--------------------- +1 แถวในชุด (0.00 วินาที )