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

  • 相关阅读:
    HDU1205 吃糖果【水题】
    HDU2568 前进【水题】
    架构图初体验
    五层架构
    文件系统权限设计涉及范畴
    微服务
    领域驱动设计
    容器技术Docker
    架构总结
    仓储模式的简单理解
  • 原文地址:https://www.cnblogs.com/aiweixiao/p/6340508.html
Copyright © 2011-2022 走看看