当前位置:  数据库>mysql

MySQL大表中重复字段的高效率查询方法

    来源: 互联网  发布时间:2014-10-07

    本文导语:  MySQL大表重复字段应该如何查询到呢?这是很多人都遇到的问题,下面就教您一个MySQL大表重复字段的查询方法,供您参考。 数据库中有个大表,需要查找其中的名字有重复的记录id,以便比较。如果仅仅是查找数据库中name不...

MySQL大表重复字段应该如何查询到呢?这是很多人都遇到的问题,下面就教您一个MySQL大表重复字段的查询方法,供您参考。

数据库中有个大表,需要查找其中的名字有重复的记录id,以便比较。
如果仅仅是查找数据库中name不重复的字段,很容易

代码如下:

SELECT min(`id`),`name`
FROM `table`
GROUP BY `name`;
  
但是这样并不能得到说有重复字段的id值。(只得到了最小的一个id值)
查询哪些字段是重复的也容易 
代码如下:

SELECT `name`,count(`name`) as count
FROM `table`
GROUP BY `name` HAVING count(`name`) >1
ORDER BY count DESC;

但是要一次查询到重复字段的id值,就必须使用子查询了,于是使用下面的语句来实现MySQL大表重复字段查询。 
代码如下:

SELECT `id`,`name`
FROM `table`
WHERE `name` in (
SELECT `name`
FROM `table`
GROUP BY `name` HAVING count(`name`) >1
);

但是这条语句在mysql中效率太差,感觉mysql并没有为子查询生成临时表。
于是使用先建立临时表 
代码如下:

create table `tmptable` as (
SELECT `name`
FROM `table`
GROUP BY `name` HAVING count(`name`) >1
);

然后使用多表连接查询
代码如下:

SELECT a.`id`, a.`name`
FROM `table` a, `tmptable` t
WHERE a.`name` = t.`name`;

结果这次结果很快就出来了。

用 distinct去重复
代码如下:

SELECT distinct a.`id`, a.`name`
FROM `table` a, `tmptable` t
WHERE a.`name` = t.`name`;

    
 
 

您可能感兴趣的文章:

  • Mysql设置查询条件(where)查询字段为NULL
  • mysql中如何判断当前是字符 mysql判断字段中有无汉字
  • mysql中字符串和时间互相转换的方法(自动转换及DATE_FORMAT函数) iis7站长之家
  • mysql怎么得到字段的值
  • Mysql的longblob字段插入数据问题解决
  • mysql 按中文字段排序
  • mysql 将字段time按天/月/年分组
  • MySQL 替换某字段内部分内容的UPDATE语句
  • mysql实现根据多个字段查找和置顶功能
  • MySql用DATE_FORMAT截取DateTime字段的日期值
  • MySQL可以使用斜线来当字段的名字
  • Mysql两种情况下更新字段中部分数据的方法
  • mysql中向表中某字段追加字符串的方法
  • MySql获取某个字段存在于哪个表的sql语句
  • Mysql 取字段值逗号第一个数据的查询语句
  • mysql判断字段是否存在的方法
  • 大家好,在mySQL中建一个自动得日期的字段的语句是什么?
  • MYSQL数据库中的现有表增加新字段(列)
  • 修改MySQL数据库中表和表中字段的编码方式的方法
  • MySQL中字段名和保留字冲突的解决办法
  • 与MSSQL对比学习MYSQL的心得(三)--查看字段的长度
  • 作为Mysql Server, 哪个Linux 较高效率?
  • mysql分页原理和高效率的mysql分页查询语句
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • mysql中字符串和时间互相转换的方法(自动转换及DATE_FORMAT函数)
  • mysql修改用户密码的方法和mysql忘记密码的解决方法
  • linux mysql登陆出错 mysql升级方法
  • MySql报错Table mysql.plugin doesn’t exist的解决方法
  • mysql启动错误之mysql启动报1067错误解决方法
  • php连接不上mysql但mysql命令行操作正常的解决方法
  • MySQL降权运行之MySQL以Guests帐户启动设置方法
  • mysql修改密码的三方法和忘记root密码的解决方法
  • mysql解决远程不能访问的二种方法
  • 强制修改mysql的root密码的六种方法分享(mysql忘记密码)
  • 修改mysql密码与忘记mysql密码的处理方法
  • linux忘记mysql密码处理方法
  • mysql服务无法启动报错误1067解决方法(mysql启动错误1067 )
  • MYSQL不能从远程连接的一个解决方法(s not allowed to connect to this MySQL server)
  • mysql Master-Master-Slaves有谁会么?求教linux下mysql Master-Master-Slaves配置方法
  • mysql中文排序注意事项与实现方法
  • mysql 查看版本的方法图文演示
  • mysql忘记密码的解决方法
  • mysql 提示INNODB错误的解决方法
  • 免安转MySQL服务的启动与停止方法
  • windows7下启动mysql服务出现服务名无效的原因及解决方法
  • mysql中如何查看最大连接数(max_connections)和修改最大连接数
  • 在 linux下输入"mysql"命令,进入mysql命令行,但出现“Can't connetc to local MySQL server thuough socket /var/lib/mysql/mysql.sock
  • Mysql查询错误:ERROR:no query specified原因
  • MySQL 重装MySQL后, mysql服务无法启动
  • php安装完成后如何添加mysql扩展
  • 为什么用linux安装盘安装了mysql后,启动mysql,提示找不到mysql.sock文件?
  • mysql中查询当前正在运行的SQL语句并找出mysql中运行慢的sql语句
  • 請教,在redhat linux7.2+mysql 中,系統提示mysql已啟動,網頁卻不能訪問mysql?
  • Myeclipse中自带Tomcat的JDBC连接池配置(mysql和mssql)
  • 求解释: useradd -g mysql mysql -d /home/mysql -s /sbin/nologin


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3