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

Loại trừ các hàng dựa trên giá trị cột khi một giá trị cột trùng lặp khác được tìm thấy trong MySQL?

Đối với điều này, bạn có thể sử dụng truy vấn con. Trước tiên, hãy để chúng tôi tạo -

mysql> create table DemoTable1427
   -> (
   -> StudentId int,
   -> StudentMarks int
   -> );
Query OK, 0 rows affected (1.28 sec)

Chèn một số bản ghi vào bảng bằng cách sử dụng chèn -

mysql> insert into DemoTable1427 values(201,89);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1427 values(201,99);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable1427 values(210,98);
Query OK, 1 row affected (0.16 sec)

Hiển thị tất cả các bản ghi từ bảng bằng select -

mysql> select * from DemoTable1427 ;

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

+-----------+--------------+
| StudentId | StudentMarks |
+-----------+--------------+
|       201 |           89 |
|       201 |           99 |
|       210 |           98 |
+-----------+--------------+
3 rows in set (0.00 sec)

Đây là truy vấn để loại trừ các hàng dựa trên giá trị cột khi một giá trị cột trùng lặp khác được tìm thấy. Ở đây, Studentmarks 89 là với StudentId 201 và với Studentid 201 đó cũng có một bản ghi khác, do đó cả hai sẽ bị loại khỏi kết quả -

mysql> select * from DemoTable1427
   -> where StudentId NOT IN (select distinct StudentId from DemoTable1427 where StudentMarks=89);

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

+-----------+--------------+
| StudentId | StudentMarks |
+-----------+--------------+
|       210 |           98 |
+-----------+--------------+
1 row in set (0.00 sec)