用Distinct在MySQL中查询多条不重复记录值[1]
在使用 mysql时 有时需要查询出某个字段不重复的记录 虽然mysql提供有distinct这个关键字来虚行过滤掉多余的重复记录只保留一条 但往往只用它来返回不重复记录的条数 而不是用它来返回颤誉备不重记录的所有值 其原因是distinct只能返回它的目标字段 而无法返回其它字段 这个问题让我困扰了很久 用distinct不能解决的话 我只有用二重循环茄毁查询来解决 而这样对于一个数据量非常大的站来说 无疑是会直接影响到效率的 所以我花了很多时间来研究这个问题 网上也查不到解决方案 期间把朋友拉来帮忙 结果是我们两人都郁闷了!
下面先来看看例子
table id name a b c c b
库结构大概这样 这只是一个简单的例子 实际情况会复杂得多
比如我想用一条语句查询得到name不重复的所有数据 那就必须使用distinct去掉多余的重复记录
select distinct name from table
得到的结果是:
name a b c
好像达到效果了 可是 我想要得到的是id值呢?改一下查询语句吧:
select distinct name id from table
lishixinzhi/Article/program/MySQL/201311/29591