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

ดึงแถวแรกและแถวสุดท้ายของตารางใน MySQL

เพื่อดึงแถวแรกและแถวสุดท้าย ใช้ UNION ร่วมกับ LIMIT ครับ

สร้างตารางตัวอย่าง

mysql> create table DemoTable694 (
    EmployeeId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    EmployeeName varchar(100),
    EmployeeSalary int
);
Query OK, 0 rows affected (0.58 sec)

เพิ่มข้อมูลตัวอย่าง

mysql> insert into DemoTable694(EmployeeName, EmployeeSalary) values('Chris', 457647);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable694(EmployeeName, EmployeeSalary) values('Robert', 90883);
Query OK, 1 row affected (0.25 sec)
mysql> insert into DemoTable694(EmployeeName, EmployeeSalary) values('David', 123532);
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable694(EmployeeName, EmployeeSalary) values('Mike', 989322);
Query OK, 1 row affected (0.22 sec)

แสดงข้อมูลทั้งหมด

mysql> select * from DemoTable694;

ผลลัพธ์

+------------+--------------+----------------+
| EmployeeId | EmployeeName | EmployeeSalary |
+------------+--------------+----------------+
| 1          | Chris        | 457647         |
| 2          | Robert       | 90883          |
| 3          | David        | 123532         |
| 4          | Mike         | 989322         |
+------------+--------------+----------------+
4 rows in set (0.00 sec)

คำสั่งดึงแถวแรกและแถวสุดท้าย

mysql> (select * from DemoTable694 order by EmployeeId ASC LIMIT 1)
UNION
(select * from DemoTable694 order by EmployeeId DESC LIMIT 1);

ผลลัพธ์

+------------+--------------+----------------+
| EmployeeId | EmployeeName | EmployeeSalary |
+------------+--------------+----------------+
| 1          | Chris        | 457647         |
| 4          | Mike         | 989322         |
+------------+--------------+----------------+
2 rows in set (0.00 sec)

คำอธิบาย: ส่วนแรก ORDER BY ASC LIMIT 1 = แถวแรก ส่วนที่สอง ORDER BY DESC LIMIT 1 = แถวสุดท้าย UNION รวมกัน (ลบแถวซ้ำอัตโนมัติ)