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

จะเลือกแถวทั้งหมดจากตารางยกเว้นแถวสุดท้ายใน MySQL ได้อย่างไร


คุณต้องใช้ตัวดำเนินการ !=พร้อมกับแบบสอบถามย่อย ไวยากรณ์มีดังนี้ −

เลือก *จาก yourTableName โดยที่ yourIdColumnName !=(select max(yourIdColumnName) จาก yourTableName );

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

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

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

mysql> แทรกลงใน AllRecordsExceptLastOne(UserName,UserAge) values('John',21);Query OK, 1 แถวได้รับผลกระทบ (0.12 วินาที)mysql> แทรกลงใน AllRecordsExceptLastOne(UserName,UserAge) values('Carol',28);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงใน AllRecordsExceptLastOne (ชื่อผู้ใช้ UserAge) ค่า ('Mike', 22); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงใน AllRecordsExceptLastOne (ชื่อผู้ใช้ UserAge) ค่า ('แซม', 29); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงใน AllRecordsExceptLastOne (ชื่อผู้ใช้ UserAge) ค่า ('David', 27); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที) mysql> แทรกลงใน AllRecordsExceptLastOne(UserName,UserAge) values('Larry',24);Query OK, 1 แถวได้รับผลกระทบ (0.20 วินาที)

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

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

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

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

นี่คือแบบสอบถามเพื่อเลือกแถวทั้งหมดจากตารางยกเว้นแถวสุดท้าย -

mysql> เลือก *จาก AllRecordsExceptLastOne โดยที่ Id!=(select max(Id) fromAllRecordsExceptLastOne);

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

<ก่อนหน้า>+----+----------+---------+| รหัส | ชื่อผู้ใช้ | อายุผู้ใช้ |+----+----------+---------+| 1 | จอห์น | 21 || 2 | แครอล | 28 || 3 | ไมค์ | 22 || 4 | แซม | 29 || 5 | เดวิด | 27 |+----+----------+---------+5 แถวในชุด (0.04 วินาที)