SELECT DISTINCT vend_id告诉MySQL只返回不同(唯一)的 vend_id行,也就是在vend_id 有重复的行中,只保留一行,其他的不作输出。比如我创建了如下的student表:

MySQL 的 DISTINCT 应用于2列时-LMLPHP

当我使用 SELECT DISTINCT Sdept FROM student; 后的输出为:

MySQL 的 DISTINCT 应用于2列时-LMLPHP

但是;

“不能部分使用DISTINCT  DISTINCT关键字应用于所有列而 不仅是前置它的列。如果给出SELECT DISTINCT vend_id, prod_price,除非指定的两个列都不同,否则所有行都将被 检索出来。 ” 《MySQL必知必会》

就是被选中的两列要综合起来一起考虑,比如我使用 SELECT DISTINCT Sdept,Ssex FROM student; 得到的输出为:

MySQL 的 DISTINCT 应用于2列时-LMLPHP

因为原始的表‘中 Sdept=CS 且 Ssex='女' 的有两个,所以二者取其一,同理  Sdept=WL 且 Ssex='男'的也是一样的道理,最终的输出如上!

05-02 19:17