mysql 根据两个字段值查询时如何去除重复数据

表结构&数据iddatenamecode12015-1-1张三111122015-2-1李四222232015-3-1张三111142015-4-1王五333352015... 表结构 & 数据

id date name code

1 2015-1-1 张三 1111
2 2015-2-1 李四 2222
3 2015-3-1 张三 1111
4 2015-4-1 王五 3333
5 2015-5-1 赵六 4444

根据字段name和code的值 如果两个值都相同的数据 就按date最大的保留

例如
id为1和3的 name和code都一样 就保留date最大即Id为3的这条数据

求大神指导sql怎么写
展开
 我来答
LatrellChan
2015-11-02 · 知道合伙人软件行家
LatrellChan
知道合伙人软件行家
采纳数:74 获赞数:142
毕业于厦门理工大学计算机信息管理专业,互联网行业五年从业经验。

向TA提问 私信TA
展开全部

假设表名为test:

select * from (select *, concat(name,code) as __f from test order by date desc) __t group by __f;
百度网友b482631
2015-11-02 · TA获得超过787个赞
知道小有建树答主
回答量:654
采纳率:100%
帮助的人:658万
展开全部
删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
delete from people
where peopleName in (select peopleName from people group by peopleName having count(peopleName) > 1)
and peopleId not in (select min(peopleId) from people group by peopleName having count(peopleName)>1)
看看这里:http://blog.csdn.net/anya/article/details/6407280
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
baishf
2015-11-02 · 超过85用户采纳过TA的回答
知道小有建树答主
回答量:126
采纳率:0%
帮助的人:146万
展开全部
select distinct a.* from 表 a where a.date = ( select max(b.date) from 表 b where b.name = a.name and b.code = a.code )
自己试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
︶ㄣ友谊︷6855
2017-04-28 · TA获得超过949个赞
知道小有建树答主
回答量:1093
采纳率:50%
帮助的人:242万
展开全部
这个语句是查询`Index`,sequence都相同的数据
select * from (select *, concat(`Index`,sequence) as __f from tbl_item order by sequence desc) __t group by __f having count(__f)>=2;
select * from tbl_item where sequence = 1465399887
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
孤独的探戈1573
2015-11-02 · TA获得超过580个赞
知道小有建树答主
回答量:238
采纳率:0%
帮助的人:156万
展开全部
select distinct id,date ,name,code from 表名 where 条件
在select 后加上一个distinct ,注意 distinct后面的字段不能是重复项的 比如id就可以 name code 就不行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式