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

จะลบบันทึกล่าสุด (ตามเงื่อนไข) ออกจากตารางใน MySQL ได้อย่างไร


หากต้องการลบบันทึกล่าสุด (ตามเงื่อนไข) ออกจากตาราง คุณต้องใช้ ORDER BY DESC กับ LIMIT

1. ไวยากรณ์มีดังนี้:

ลบจาก yourTableName โดยที่ yourColumnName1=yourValue ORDER BY yourColumnName2 DESC LIMIT 1;

ไวยากรณ์ด้านบนจะลบบันทึกล่าสุด (ตามเงื่อนไข) ออกจากตาราง โดยจะเรียงลำดับคอลัมน์จากมากไปหาน้อยและเลือกองค์ประกอบแรกที่จะลบ

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้:

mysql> สร้างตาราง UserLoginTable -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> UserId int, -> UserLoginDateTime datetime, -> PRIMARY KEY(Id) -> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.94 วินาที) 

แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้:

mysql> แทรกลงใน UserLoginTable(UserId,UserLoginDateTime) ค่า(2,'2019-01-27 13:47:20');ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.19 วินาที)mysql> แทรกลงใน UserLoginTable(UserId,UserLoginDateTime ) ค่า (1,'2018-11-28 12:30:12'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงใน UserLoginTable (UserId, UserLoginDateTime) ค่า (2,'2019-01-26 11 :30:30');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.20 วินาที)mysql> แทรกลงใน UserLoginTable(UserId,UserLoginDateTime) ค่า (1,'2015-03-11 15:23:55'); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.21 วินาที) mysql> แทรกลงใน UserLoginTable (UserId, UserLoginDateTime) ค่า (2,'2019-03-21 16:01:56'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.23 วินาที)

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

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

ต่อไปนี้เป็นผลลัพธ์:

<ก่อนหน้า>+----+---------+---------------------+| รหัส | รหัสผู้ใช้ | UserLoginDateTime |+----+--------+---------------------+| 1 | 2 | 2019-01-27 13:47:20 || 2 | 1 | 2018-11-28 12:30:12 || 3 | 2 | 2019-01-26 11:30:30 || 4 | 1 | 2015-03-11 15:23:55 || 5 | 2 | 2019-03-21 16:01:56 |+----+--------+---------------------+5 แถว ในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อลบบันทึกล่าสุด (ตามเงื่อนไข) จากตาราง:

mysql> ลบออกจาก UserLoginTable โดยที่ UserId=2 ORDER BY UserLoginDateTime DESC LIMIT 1; Query OK, 1 แถวได้รับผลกระทบ (0.16 วินาที)

ตรวจสอบระเบียนตารางอีกครั้งโดยใช้คำสั่ง select แบบสอบถามมีดังนี้:

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

ต่อไปนี้เป็นผลลัพธ์:

<ก่อนหน้า>+----+---------+---------------------+| รหัส | รหัสผู้ใช้ | UserLoginDateTime |+----+--------+---------------------+| 1 | 2 | 2019-01-27 13:47:20 || 2 | 1 | 2018-11-28 12:30:12 || 3 | 2 | 2019-01-26 11:30:30 || 4 | 1 | 2015-03-11 15:23:55 |+----+--------+---------------------+4 แถว ในชุด (0.00 วินาที)

บันทึกล่าสุดถูกลบออกจากตารางที่มี UserId 2