- select distinct name from user;
这条distinct语句只能返回name值 - 如果我想返回其他值就必须用
select id,email,address,count(distinct name) from user group by name; - 若使用select id,email,address,distinct name from user;
则报错
问:为什么mysql不能把distinct设计成可以拥有直接包含其他返回值的功能,我感觉这种才是更常见的吧。原因何在?
猜测楼主是想根据
name
分组,同时返回id,email,address
但当
name
相同,存在2个不同的id
,返回结果不明确,MySQL
是不支持出现语义不明确的列建议使用
GROUP BY
+聚合函数来查询MySQL5.7新增
ANY_VALUE
, MySQL5.6可删除ONLY_FULL_GROUP_BY
模式