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

จะเลือกแถวข้อมูลแรกและแถวสุดท้ายจากผลลัพธ์ MySQL ได้อย่างไร


คุณสามารถเลือกแถวข้อมูลแรกและแถวสุดท้ายได้โดยใช้ MIN() และ MAX() ไวยากรณ์มีดังนี้ −

SELECT *FROM yourTableNameWHERE yourColumnName =(SELECT MIN(yourColumnName) FROM yourTableName)UNIONSELECT *FROM yourTableNameWHERE yourColumnName =(SELECT MAX(yourColumnName) จาก yourTableName);

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

mysql> สร้างตาราง FirstAndLastDataDemo -> ( -> EmployeeId int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> EmployeeName varchar(20), -> EmployeeAge int -> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.59 วินาที)

ตัวอย่าง

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

mysql> แทรกลงใน FirstAndLastDataDemo(EmployeeName,EmployeeAge) values('John',23);Query OK, 1 แถวได้รับผลกระทบ (0.15 วินาที)mysql> แทรกลงใน FirstAndLastDataDemo(EmployeeName,EmployeeAge) values('Bob',13);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที)mysql> แทรกลงใน FirstAndLastDataDemo (EmployeeName,EmployeeAge) ค่า ('Larry',24); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงใน FirstAndLastDataDemo (EmployeeName,EmployeeAge) ค่า ('Sam',14); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงใน FirstAndLastDataDemo (EmployeeName,EmployeeAge) ค่า ('Mike',31); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงในค่า FirstAndLastDataDemo(EmployeeName,EmployeeAge) ('James',18);Query OK, 1 แถวได้รับผลกระทบ (0.16 วินาที)mysql> แทรกลงใน FirstAndLastDataDemo(EmployeeName,EmployeeAge)values('Maxwell',28);Query OK, 1 แถวที่ได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงใน FirstAndLastDataDemo (EmployeeName,EmployeeAge) ค่า ('David',27); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงใน FirstAndLastDataDemo ( EmployeeName,EmployeeAge) values('Chris',22);ตกลง, 1 แถวได้รับผลกระทบ (0.19 วินาที)

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

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

ผลลัพธ์

<ก่อนหน้า>+------------+--------------+-----------+| รหัสพนักงาน | ชื่อพนักงาน | อายุพนักงาน |+------------+--------------+-----------+| 1 | จอห์น | 23 || 2 | บ๊อบ | 13 || 3 | แลร์รี่ | 24 || 4 | แซม | 14 || 5 | ไมค์ | 31 || 6 | เจมส์ | 18 || 7 | แม็กซ์เวลล์ | 28 || 8 | เดวิด | 27 || 9 | คริส | 22 |+------------+--------------+-------------+9 แถวในชุด ( 0.00 วินาที)

นี่คือแบบสอบถามเพื่อรับข้อมูลแถวแรกและข้อมูลแถวสุดท้าย -

mysql> SELECT *-> จาก FirstAndLastDataDemo-> โดยที่ EmployeeId =(SELECT MIN(EmployeeId) จาก FirstAndLastDataDemo)-> UNION-> SELECT *-> จาก FirstAndLastDataDemo-> โดยที่ EmployeeId =(เลือก MAX (EmployeeId) จาก FirstAndLastDataDemo);

ผลลัพธ์

<ก่อนหน้า>+------------+--------------+-----------+| รหัสพนักงาน | ชื่อพนักงาน | อายุพนักงาน |+------------+--------------+-----------+| 1 | จอห์น | 23 || 9 | คริส | 22 |+------------+--------------+-------------+2 แถวในชุด ( 0.00 วินาที)