MySQL 查询某个字段不重复的所有记录
假设现在有如下N条记录 表明叫book
id author title
1 aaa AAA
2 bbb BBB
3 ccc CCC
4 ddd DDD
5 eee AAA
现在想从这5条记录中查询所有title不重复的记录
select distinct title,author from book这样是不可以的 因为distinct只能作用于一个字段
想请教应该怎么写
答案:
代码如下:
select a.* from book a right join (
select max(id) id from book group by title) b on b.id = a.id
where a.id is not null
如果选第一条符合的记录,那么用min(id)就行了
select a.* from book a right join (
select min(id) id from book group by title) b on b.id = a.id
where a.id is not null
相关推荐
-
MySql避免重复插入记录的几种方法
方案一:使用ignore关键字 如果是用主键primary或者唯一索引unique区分了记录的唯一性,避免重复插入记录可以使用: 复制代码 代码如下: INSERT IGNORE INTO `table_name` (`email`, `phone`, `user_id`) VALUES ('test9@163.com', '99999', '9999'); 这样当有重复记录就会忽略,执行后返回数字0 还有个应用就是复制表,避免重复记录: 复制代码 代码如下: INSERT IGNORE INT
-
MySQL 删除数据库中重复数据方法小结
刚开始,根据我的想法,这个很简单嘛,上sql语句 delete from zqzrdp where tel in (select min(dpxx_id) from zqzrdp group by tel having count(tel)>1); 执行,报错!!~!~ 异常意为:你不能指定目标表的更新在FROM子句.傻了,MySQL 这样写,不行,让人郁闷. 难倒只能分步操作,蛋疼 以下是网友写的,同样是坑爹的代码,我机器上运行不了. 1. 查询需要删除的记录,会保留一条记录. select
-
mysql 查询重复的数据的SQL优化方案
在mysql中查询不区分大小写重复的数据,往往会用到子查询,并在子查询中使用upper函数来将条件转化为大写.如: 复制代码 代码如下: select * from staticcatalogue WHERE UPPER(Source) IN (SELECT UPPER(Source) FROM staticcatalogue GROUP BY UPPER(Source) having count(UPPER(Source))>1) ORDER BY upper(Source) DESC; 这条
-
mysql 数据表中查找重复记录
复制代码 代码如下: select user_name,count(*) as count from user_table group by user_name having count>1; 这个我在很早有发过一个asp下的ACCESS 的
-
Mysql一些复杂的sql语句(查询与删除重复的行)
1.查找重复的行 SELECT * FROM blog_user_relation a WHERE (a.account_instance_id,a.follow_account_instance_id) IN (SELECT account_instance_id,follow_account_instance_id FROM blog_user_relation GROUP BY account_instance_id, follow_account_instance_id HAVING C
-
mysql删除重复记录语句的方法
例如: id name value 1 a pp 2 a pp 3 b iii 4 b pp 5 b pp 6 c pp 7 c pp 8 c iii id是主键 要求得到这样的结果 id name value 1 a pp 3 b iii 4 b pp 6 c pp 8 c iii 方法1 delete YourTable where [id] not in ( select max([id]) from YourTable group by (name + value)) 方法2 delet
-
MySQL中distinct语句去查询重复记录及相关的性能讨论
在 MySQL 查询中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值. 关键词 DISTINCT 用于返回唯一不同的值,就是去重啦.用法也很简单: SELECT DISTINCT * FROM tableName DISTINCT 这个关键字来过滤掉多余的重复记录只保留一条. 另外,如果要对某个字段去重,可以试下: SELECT *, COUNT(DISTINCT nowamagic) FROM table GROUP BY nowamagic 这个用
-
MySQL大表中重复字段的高效率查询方法
MySQL大表重复字段应该如何查询到呢?这是很多人都遇到的问题,下面就教您一个MySQL大表重复字段的查询方法,供您参考. 数据库中有个大表,需要查找其中的名字有重复的记录id,以便比较.如果仅仅是查找数据库中name不重复的字段,很容易 复制代码 代码如下: SELECT min(`id`),`name` FROM `table` GROUP BY `name`; 但是这样并不能得到说有重复字段的id值.(只得到了最小的一个id值)查询哪些字段是重复的也容易 复制代码 代码如下: SELEC
-
MySQL中查询、删除重复记录的方法大全
前言 本文主要给大家介绍了关于MySQL中查询.删除重复记录的方法,分享出来供大家参考学习,下面来看看详细的介绍: 查找所有重复标题的记录: select title,count(*) as count from user_table group by title having count>1; SELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_info WHERE Title = a.Title) > 1) ORDER BY Titl
-
mysql查询表里的重复数据方法
INSERT INTO hk_test(username, passwd) VALUES ('qmf1', 'qmf1'),('qmf2', 'qmf11') delete from hk_test where username='qmf1' and passwd='qmf1' MySQL里查询表里的重复数据记录: 先查看重复的原始数据: 场景一:列出username字段有重读的数据 select username,count(*) as count from hk_test group by
随机推荐
- 记一次MongoDB性能问题(从MySQL迁移到MongoDB)
- Javascript模块化编程(一)AMD规范(规范使用模块)
- 详细的Mysql安装 图解win2003+iis6+php+gd2+mysql安装配置第1/2页
- 在Java的Struts中判断是否调用AJAX及用拦截器对其优化
- 详解C#中的属性和属性的使用
- Android开发实现图片圆角的方法
- MYSQL神秘的HANDLER命令与实现方法
- web目录下不应该存在多余的程序(安全考虑)
- GMap.Net开发之自定义Marker使用方法
- ASP+COM不得不注意的问题
- js实现兼容IE、Firefox的图片缩放代码
- 详解webpack es6 to es5支持配置
- javaScript年份下拉列表框内容为当前年份及前后50年
- 微信小程序 基础组件与导航组件详细介绍
- java 中动态代理机制的实例讲解
- python多线程操作实例
- android中多线程下载实例
- CentOS7安装Caffe的教程详解
- Mysql Workbench查询mysql数据库方法
- 13道关于JavaScript正则表达式的面试题