【日常开发】使用多种工具实现 sql查询没有结果的name

本文地址

分享提纲:

  1. 事情的背景

  2. 解决办法

  3. 总结

1. 事情的背景



现在需要将2000条数据的name,从user表中查询出来结果,sql 这样写

SELECT * FROM user WHERE name
  IN
(
‘name1‘,
‘name2‘,
...
‘name2000‘

);

  但是出来的查询结果只有 1997条,说明有3条没有结果,也有可能是有重复的name,怎么查询出来是哪3个数据没有结果或者是重复的数据呢?

2. 解决办法



猜想使用mysql应该也可找到是那3条name没有结果,只是一时没有想起来,只好使用了别的办法了。

解决思路是这样的:

1)【mysql结果导出】

    首先,是将查询出来的结果1997条的name都存在文本中(mysql已经对name做了排序处理了) mysql.log

2)【查找重复数据】

    然后,将原来的数据,使用shell的命令 sort -u 处理为 sort_unique.log 与原来的文件sort.log(也经过 sort处理) vimdiff就可以看出来,是否有重复的name, 果然有 1条重复的name

3)【查找没有返回值的name】

    最后,vimdiff 一下, mysql.log  和 sort_unique.log(两者实现了同样的排序) 就可以看出来到底是哪些 name 在数据表 user中没有返回了

3. 总结



首先就是我的mysql查询语句需要提高,然后,当一种技术解决不了问题时,可以混合多种技术。

像上面提到的 shell在文本处理,排序,去重,对比中展现的优势是无与伦比的,比 PHP等语言处理要快很多。

-- 另外:

有知道怎么直接用 sql语句查询出来哪些 name没有结果的同学,也欢迎回复哈,一起学习交流提高,谢谢~

时间: 2024-10-14 00:40:45

【日常开发】使用多种工具实现 sql查询没有结果的name的相关文章

spring MVC +freemarker + easyui 实现sql查询和执行小工具总结

项目中,有时候线下不能方便的连接项目中的数据源时刻,大部分的问题定位和处理都会存在难度,有时候,一个小工具就能实时的查询和执行当前对应的数据源的库.下面,就本人在项目中实际开发使用的小工具,实时的介绍开发使用过程.首先看图:大概的操作界面,基本使用easyui组件实现,欢迎大家吐槽: 界面包含了基本的sql查询 和 sql执行的小功能,把查询和执行分开,也是为了后台实现的需要,以及权限控制的考虑,毕竟执行的操作,会影响到系统的数据问题.查询和执行的菜单,是用easyui的手风琴式的菜单处理的.两

为什么选择 Intellij IDEA 作为日常开发工具

为什么选择 Intellij IDEA 作为日常开发工具 作为一个从事 Java 开发的程序员,每天离不开编辑器的帮助.还记得刚开始学习 Java 编程的时候,使用 Eclipse 作为日常开发工具.后来工作以后,需要使用 Intellij IDEA,刚开始其实并不想怎么用.毕竟 Eclipse 已经足够强大,可以满足日常开发的需求,何必再花时间再去学习其他工具那.刚开始改变是困难的.但是没办法,公司强制使用,不得不去了解去使用.后来用了一段时间才发现 IDEA 是的真的强大. 真香啊~ 下面就

SQL查询条件生成小工具

最近运维数据,经常遇到需要在sql条件中个In('',''....)个字符串的情况,于是在网上找了个小工具改造一下,先用着: 效果如图: 1 using System; 2 using System.Collections.Generic; 3 using System.IO; 4 using System.Linq; 5 using System.Text; 6 using System.Threading.Tasks; 7 using Newtonsoft.Json.Serializatio

开发中遇到的问题---【使用mybatis时 有一个sql查询不到结果 日志也显示查询为o 但是从日志中取出执行的sql到数据库客户端手动执行,可以查到数据】

问题:使用mybatis时 有一个sql查询不到结果 日志也显示查询为o 但是从日志中取出执行的sql到数据库客户端手动执行,可以查到数据: 原因:MyBatis看到 #{}会认为你在给sql中的变量赋值,就像JDBC编程中给问号赋值一样(自动在前后加单引号)也就是说,他把你传入的字符串并没有当做多个值,而是当做一个大的字符串,所以查询不到值 而MyBatis看到${}的时候会直接将之替换成变量的值而不做任何处理: 解决方案:将查询条件中的“#”替换成“$”. <select id="fi

(转)经典SQL查询语句大全

一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始 备份 BACKUP DATABASE pubs TO testBack 4.说明:创建

Hibernate 的SQLQuery接口addScalar方法 (原生sql查询)

在平时开发中Hibernate提供的hql基本能够满足我们的日常需求.但是在有些特殊的情况下,还是需要使用原生的sql,并且希望sql查询出来的结果能够绑定到pojo上.hibernate API中的createSQLQuery  和createQuery接口. 就像在这次的项目中,因为表结构要变化,有个新的需求: 要从一个表中查询极个别的字段并且还有几个是求多条数据的和的,之前一直在使用hibernate的API,使用的都是映射过得对象. 原对象及表结构是这样的: @Entity @Table

ORACLE 常用SQL查询

一.ORACLE的启动和关闭 1 .在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su  -  oracle a.启动ORACLE系统 oracle > svrmgrl SVRMGR > connect internal SVRMGR > startup SVRMGR > quit b.关闭ORACLE系统 oracle > svrmgrl SVRMGR > connect internal SVRMGR > shutdown

Stimulsoft Reports.Wpf是针对WPF开发的报表工具控件

Stimulsoft Reports.Wpf是针对WPF开发的报表工具控件.无需上网,所有的WPF功能都能用上!丰富的界面更换功能.查看功能.打印以及导出报表功能——所有的这一切就是它都能轻松实现. 创建Stimulsoft Reports.Wpf是基于Stimulsoft团队多年开发以及使用的报表引擎来创建报表.只需简单的几行代码即可执行报表复杂的操作,报表引擎提供了创建报表的许多功能.大量的组件开发包,独特的一套属性和参数,精心构思的报表体系.很多选项都是绝对独特且仅出现该产品中.Stimu

程序员必备的开发和测试工具汇总

网络监测服务诞生于互联网井喷年代,对于网民来说,短短几年之内,经历了从浏览白底黑字的网页到硝烟四起的论坛,再到在线听歌.看片.网购支付.在线阅读.公共信息查询,人们还没来得及感叹进化之迅猛,移动互联网就伴随着手机.pad等各种终端扑面而来,模糊了线上线下的界限,把用户体验推向了极致.然后大家开始关注转向网页的兼容性.打开速度.交互体验.App应用的反应时间.能否被不同地区的用户访问. 下面介绍一些App应用从开发到服务性能监测的一些工具和途径: 开发工具: 1.Bizness Apps 一个傻瓜