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

เข้าถึงแถวที่แทรกล่าสุดใน MySQL หรือไม่


หากคุณเป็น AUTO_INCREMENT ที่มีคอลัมน์ คุณสามารถใช้เมธอด last_insert_id() ได้ เมธอดนี้รับ ID ของเร็กคอร์ดที่แทรกล่าสุดใน MySQL

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

SELECT LAST_INSERT_ID();

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

mysql> สร้างตาราง LastInsertedRow -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> UserName varchar(20), -> UserAge int -> );Query OK, 0 แถวได้รับผลกระทบ (0.56 วินาที)

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

แบบสอบถามมีดังนี้

mysql> แทรกลงใน LastInsertedRow(UserName,UserAge) values('John',23);Query OK, 1 แถวได้รับผลกระทบ (0.19 วินาที)mysql> แทรกลงใน LastInsertedRow(UserName,UserAge) values('Carol',24);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที)mysql> แทรกลงใน LastInsertedRow(ชื่อผู้ใช้ UserAge) ค่า ('Bob',24); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.08 วินาที)mysql> แทรกลงใน LastInsertedRow (ชื่อผู้ใช้ UserAge) ค่า ('Larry',26); ตกลงแบบสอบถาม 1 แถวได้รับผลกระทบ (0.09 วินาที) mysql> แทรกลงใน LastInsertedRow (ชื่อผู้ใช้ UserAge) ค่า ('Maxwell', 27); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงใน LastInsertedRow(UserName,UserAge) values('David',22);Query OK, 1 แถวได้รับผลกระทบ (0.10 วินาที)

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

แบบสอบถามมีดังนี้

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

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

<ก่อนหน้า>+----+----------+---------+| รหัส | ชื่อผู้ใช้ | อายุผู้ใช้ |+----+----------+---------+| 1 | จอห์น | 23 || 2 | แครอล | 24 || 3 | บ๊อบ | 24 || 4 | แลร์รี่ | 26 || 5 | แม็กซ์เวลล์ | 27 || 6 | เดวิด | 22 |+----+----------+---------+6 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อรับแถวที่แทรกล่าสุด

mysql> เลือก last_insert_id();

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

<ก่อนหน้า>+-----------------+| last_insert_id() |+-----------------+| 6 |+------------------+1 แถวในชุด (0.00 วินาที)

หากคุณต้องการทั้งแถว ให้ใช้คำค้นหาต่อไปนี้

mysql> เลือก *จาก LastInsertedRow โดยที่ Id=(SELECT LAST_INSERT_ID());

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

<ก่อนหน้า>+----+----------+---------+| รหัส | ชื่อผู้ใช้ | อายุผู้ใช้ |+----+----------+---------+| 6 | เดวิด | 22 |+----+----------+---------+1 แถวในชุด (0.05 วินาที)