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

ลบเรคคอร์ดที่มี ID มากที่สุดใน MySQL

การลบเรคคอร์ดที่มี ID สูงสุด (มากที่สุด) ใน MySQL

ใช้ DELETE ... ORDER BY id DESC LIMIT 1 เพื่อลบแถวเดียวที่มี ID มากที่สุด

ตัวอย่างการใช้งาน

สร้างตารางและเพิ่มข้อมูล:

mysql> create table DemoTable (UserId int, UserName varchar(20));
mysql> insert into DemoTable values(100,'John');
mysql> insert into DemoTable values(234,'Mike');
mysql> insert into DemoTable values(145,'Sam');
mysql> insert into DemoTable values(278,'Carol');
mysql> insert into DemoTable values(289,'David');
mysql> insert into DemoTable values(277,'Bob');

ข้อมูล (Max ID = 289):

+--------+----------+
| UserId | UserName |
+--------+----------+
| 100    | John     |
| 234    | Mike     |
| 145    | Sam      |
| 278    | Carol    |
| 289    | David    |
| 277    | Bob      |
+--------+----------+

คิวรีลบ ID มากที่สุด:

mysql> delete from DemoTable order by UserId DESC limit 1;
Query OK, 1 row affected (0.15 sec)

ข้อมูลหลังลบ (ID 289 หายไป):

+--------+----------+
| UserId | UserName |
+--------+----------+
| 100    | John     |
| 234    | Mike     |
| 145    | Sam      |
| 278    | Carol    |
| 277    | Bob      |
+--------+----------+

ข้อควรระวัง:

  • ORDER BY ... LIMIT ใน DELETE รองรับใน MySQL แต่ไม่ใช่ Standard SQL
  • หากมี ID ซ้ำ (ไม่ใช่ PK) อาจลบไม่ได้ตามต้องการ → ควรมี Unique Key
  • ทางเลือก: DELETE FROM DemoTable WHERE UserId = (SELECT MAX(UserId) FROM DemoTable); (Standard SQL, รองรับทุก DB)