有个需求,一直没有解决,在google上找了半天,给出的方案没有一个能用了,最后鬼使神差搞定了。
是这样的,假设一个表:
id f_id value
1 2 a
2 2 b
3 5 c
4 9 c
5 9 a
6 6 d
id f_id value
1 2 a
2 2 b
3 5 c
4 9 c
5 9 a
6 6 d
id是主键,f_id是外键,我需要获得不重复的外键f_id的数据,如果用group by 或者distinct很容易搞定
select f_id from table group by f_id
select distinct f_id from table
但如果再想在结果中得到id值的话,不管怎么都会乱。比如我想在结果中用id进行排序,诸如”select distinct f_id, id from table order by id desc”完全白费。在google上看了大量的例子,发现需要在select中对id做手脚,让mysql知道除了f_id外,对id应该进行如何的操作。诸如Max, Min, Avg,Sun..都是可以的,于是变成以下的代码就搞定了……
select f_id, max(id) as id from table group by f_id order by id desc
搞定,网上有个文章很接近答案,但是他没有”as id”,导致在我的mysql中执行结果有误,呵呵。
使用mysql的disctinct group by查询不重复记录
2019-10-23 14:55mysql教程网 Mysql
非常不错的方法,用mysql的group by解决不重复记录的问题,看来我需要学习的地方太多了
延伸 · 阅读
- 2019-10-23mysql 时间转换函数的使用方法
- 2019-10-23log引起的mysql不能启动的解决方法
- 2019-10-23mysql删除表中某一字段重复的记录
- 2019-10-23MySQL的Query Cache原理分析
- 2019-10-23MYSQL初学者命令行使用指南
- 2019-10-23MYSQL administrator 使用
精彩推荐
- Mysql
有关SQL模糊查询
在进行数据库查询时,有完整查询和模糊查询之分,这里简单介绍下,方便需要的朋友 ...
- Mysql
SQL 优化
(一)深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录。微软的 SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索...
- Mysql
Mysql修改server uuid的方法分享
这篇文章主要给大家介绍了关于Mysql修改server uuid的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友...
- Mysql
如何恢复MYSQL的ROOT口令
如果你忘记了你的 MYSQL 的root 口令 的话,你可以通过下面的过程 恢复 。 1.向mysqldserver发送kill命令关掉mysqldserver(不是kill-9),存放进程ID的文件通常在MYSQL的...
- Mysql
mysql中数据统计的技巧备忘录
mysql是常用数据库,对于数字操作相关的东西相当方便,这篇文章主要给大家介绍了关于mysql中数据统计技巧的相关资料,非常具有实用价值,需要的朋友可...
- Mysql
MySQL slow_log表无法修改成innodb引擎详解
这篇文章主要给大家介绍了关于MySQL slow_log表无法修改成innodb引擎的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考...
- Mysql
MySQL线程处于Opening tables的问题解决方法
在本篇文章里小编给大家分享了关于MySQL线程处于Opening tables的问题解决方法,有兴趣的朋友们学习下。...
- Mysql
mysql备份恢复mysqldump.exe几个常用用例
mysql备份恢复mysqldump.exe几个常用用例,收集了,一个整理不错的,mysql备份与恢复用法 ...