【日常开发】使用多种工具实现 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没有结果的同学,也欢迎回复哈,一起学习交流提高,谢谢~

 

posted @   程序员的文娱情怀  阅读(409)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示