当 MySQL 中的另一重复列值中找到某个重复的列值时,如何根据该列值排除行?
为此,你可以使用子查询。我们首先创建一个 −
mysql> create table DemoTable1427 -> ( -> StudentId int, -> StudentMarks int -> ); Query OK, 0 rows affected (1.28 sec)
使用插入在表中插入一些记录 −
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)
使用选择从表中显示所有记录 −
mysql> select * from DemoTable1427 ;
这将产生以下输出 −
+-----------+--------------+ | StudentId | StudentMarks | +-----------+--------------+ | 201 | 89 | | 201 | 99 | | 210 | 98 | +-----------+--------------+ 3 rows in set (0.00 sec)
以下是对列值进行排除查询,当另一个重复列值被找到时。此处,Studentmarks 89 使用 StudentId 201 并且该 Studentid 201 还有一个记录,因此这两个记录将从结果中被排除 −
mysql> select * from DemoTable1427 -> where StudentId NOT IN (select distinct StudentId from DemoTable1427 where StudentMarks=89);
这将产生以下输出 −
+-----------+--------------+ | StudentId | StudentMarks | +-----------+--------------+ | 210 | 98 | +-----------+--------------+ 1 row in set (0.00 sec)
广告