Computer >> Máy Tính >  >> Lập trình >> MySQL

Nhận tất cả các hàng khác nhau từ đầu tiên và cuối cùng trong MySQL

Để phân biệt tất cả các hàng với hàng đầu tiên và hàng cuối cùng, hãy sử dụng truy vấn con cùng với MIN () và MAX (). Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable1917
   (
   StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   StudentCode int,
   StudentMarks int
   );
Query OK, 0 rows affected (0.00 sec)

Chèn một số bản ghi vào bảng bằng lệnh chèn -

mysql> insert into DemoTable1917(StudentCode,StudentMarks) values(78,95);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1917(StudentCode,StudentMarks) values(78,96);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1917(StudentCode,StudentMarks) values(78,97);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1917(StudentCode,StudentMarks) values(78,98);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1917(StudentCode,StudentMarks) values(78,99);
Query OK, 1 row affected (0.00 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select * from DemoTable1917;

Điều này sẽ tạo ra kết quả sau -

+-----------+-------------+--------------+
| StudentId | StudentCode | StudentMarks |
+-----------+-------------+--------------+
|         1 |          78 |           95 |
|         2 |          78 |           96 |
|         3 |          78 |           97 |
|         4 |          78 |           98 |
|         5 |          78 |           99 |
+-----------+-------------+--------------+
5 rows in set (0.00 sec)

Đây là truy vấn để lấy tất cả các hàng ngoài hàng đầu tiên và hàng cuối cùng:

mysql> select * from DemoTable1917
   where StudentId NOT IN
   (
   (
   select min(StudentId) from DemoTable1917 where StudentCode=78),
   (select max(StudentId) from DemoTable1917 where StudentCode=78)
   ) and StudentCode=78;

Điều này sẽ tạo ra kết quả sau -

+-----------+-------------+--------------+
| StudentId | StudentCode | StudentMarks |
+-----------+-------------+--------------+
|         2 |          78 |           96 |
|         3 |          78 |           97 |
|         4 |          78 |           98 |
+-----------+-------------+--------------+
3 rows in set (0.00 sec)