MySQL 的 DISTINCT 应用于2列时
SELECT DISTINCT vend_id告诉MySQL只返回不同(唯一)的 vend_id行,也就是在vend_id 有重复的行中,只保留一行,其他的不作输出。比如我创建了如下的student表:
当我使用 SELECT DISTINCT Sdept FROM student; 后的输出为:
但是;
“不能部分使用DISTINCT DISTINCT关键字应用于所有列而 不仅是前置它的列。如果给出SELECT DISTINCT vend_id, prod_price,除非指定的两个列都不同,否则所有行都将被 检索出来。 ” 《MySQL必知必会》
就是被选中的两列要综合起来一起考虑,比如我使用 SELECT DISTINCT Sdept,Ssex FROM student; 得到的输出为:
因为原始的表‘中 Sdept=CS 且 Ssex='女' 的有两个,所以二者取其一,同理 Sdept=WL 且 Ssex='男'的也是一样的道理,最终的输出如上!