点击登录
  • 欢迎访问无限星辰技术博客,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏无限星辰吧
  • 好集导航开张了,传送门:好集导航

mysql查询根据条件去除某个字段重复行

Mssql/Mysql问题集 crx349 5518次浏览 0个评论 扫描二维码

表名:table
id uid username message dateline
1 6  a    111    1284240714(时间戳)
2 6  a    222    1268840565
3 8  b    444    1266724527
4 9  c    555    1266723391
5 9  c    666    1555555555

我想查询所有字段,去除uid重复的行,只保留id值最大的一条
查询结果是
id uid username message dateline
2 6  a    222    1268840565

3 8  b    444    1266724527
5 9  c    666    1555555555
怎么实现?

SELECT * FROM TABLE t WHERE t.id IN (
SELECT MAX(id) FROM TABLE GROUP BY uid;
)

还有没有更高效一点的方法

回答
SELECT * FROM TABLE t WHERE EXISTS (
SELECT 1 FROM TABLE GROUP BY uid
HAVING MAX(id) = t.id
)


无限星辰 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明mysql查询根据条件去除某个字段重复行!
喜欢 (1)
[]
分享 (0)

您必须 登录 才能发表评论!