目录

  • 前言
  • 目前多数人的写法
  • 优化方案

前言

根据某一条件从数据库表中查询『有』与『没有』,只有两种状态,那为什么在写 SQL 的时候,还要 select count(*) 呢?

目前多数人的写法

业务代码中,需要根据一个或多个条件,查询是否存在记录,不关心有多少条记录。普遍的 SQL 及代码写法如下

SELECT count(*) FROM table WHERE a = 1 AND b = 2
int nums = xxDao.countXxxxByXxx(params);
if ( nums > 0 ) {//当存在时,执行这里的代码
} else {//当不存在时,执行这里的代码
}

是不是感觉很 OK,没有什么问题

优化方案

推荐写法如下

SELECT 1 FROM table WHERE a = 1 AND b = 2 LIMIT 1
Integer exist = xxDao.existXxxxByXxx(params);
if ( exist != NULL ) {//当存在时,执行这里的代码
} else {//当不存在时,执行这里的代码
}

SQL 不再使用 count,而是改用 LIMIT 1,让数据库查询时遇到一条就返回,不要再继续查找还有多少条了

业务代码中直接判断是否非空即可

SQL查找是否存在,别再count了相关推荐

  1. SQL 查找是否“存在“,别再count了

    你们查询数据库表中存不存在的某条数据的时候,是不是还在用select count(*) 普通写法 #### SQL写法: SELECT count(*) FROM table WHERE a = 1 ...

  2. SQL查找是否存在,别再count了!

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源:http://suo.im/5T1tGv 根据某一条 ...

  3. SQL查找是否存在,别再count了,很耗费时间的

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:http://suo.im/5T1tGv 根据某一条件从数据 ...

  4. SQL 查找是否存在,别再 COUNT 了,很耗费时间的

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写 ...

  5. idea怎么看sql执行打印_SQL查找是否quot;存在quot;,别再count了,很耗费时间的

    根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*) 呢? 无论是刚入道的程序员新星,还是精湛沙场多年的程序员老白,都是一如既往的 ...

  6. 数据库优化:SQL 查找是否存在,别再 count 了,很耗费时间的!

    目前多数人的写法 优化方案 总结 根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*) 呢? 无论是刚入道的程序员新星,还是精湛沙 ...

  7. SQL 查找是否存在,别再 count 了,很耗费时间的!

    作者:程序猿囧途 来源:toutiao.com/i6826511837840802315 根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT co ...

  8. SQL 查找重复记录

    SQL 查找重复记录 CREATE TABLE product (  ID INT IDENTITY(1,1) PRIMARY KEY NOT NULL,  Pid INT NOT NULL,  Pn ...

  9. 老问题,SQL保存图片。保存以后再读出来,发现stream的大小不一致。虽然老,但没搜到结果。...

    老问题,SQL保存图片.保存以后再读出来,发现stream的大小不一致.虽然老,但没搜到结果. Delphi / Windows SDK/API http://www.delphi2007.net/D ...

  10. 【MySQL】基于MySQL的SQL优化(二)——对count()、max()的优化

    *本文章使用数据均来自MySQL样本数据库Sakila,参考:https://blog.csdn.net/tanglei6636/article/details/93042010 max(): 通过一 ...

最新文章

  1. 【ios开发/Xcode】使用UITableView完成学生信息及成绩的显示
  2. 如何创建一个最小的区块链
  3. LeetCode 102二叉树的层序遍历103二叉树锯齿形遍历104二叉树的最大深度
  4. ES6版Promise实现,给你不一样的体验
  5. 黄哥漫谈Python 生成器
  6. [转]我是如何走进黑客世界的?
  7. SQL存储过程的导入导出
  8. 目标检测第5步:如何在Windows 10系统下,搭建YOLOv5(5.0)环境?保姆级,没有人比这个更详细了(更新时间2022.3.22)
  9. C语言第五次博客作业---函数
  10. flex, swf 不能访问网络/本地资源
  11. 20165204 Java第六周学习
  12. ulimit限制 新系统_遇到一个很奇怪的问题,ulimit设置问题
  13. 创建.NET Core程序的Nuget Package
  14. 华为数通 软开 2022校招 面试全过 已开奖
  15. oracle修改执行计划,调整执行计划的三种方法
  16. IOS快捷指令的用法(快捷指令库使用方法)
  17. 华为业绩发布会:5G产品和供货没有受到“实体清单”影响
  18. Flink SQL语法检查
  19. clang: error:clang frontend command failed due to signal
  20. 大三学生简历_不要再问那些没有的高级开发人员了。 开始指导大三学生。

热门文章

  1. Python性能加速
  2. 算法:链表最快的排序方法,分而治之再合并排序
  3. 这文字的起始位置_如何用AE快速制造文字特效视频的效果?3分钟教你学会
  4. 为什么我们要使用图嵌入?
  5. 30. 与所有单词相关联的字串
  6. admin is not in the sudoers file. This incident will be reported
  7. length与length()
  8. K8S学习笔记之借助Minikube完成在windows环境下Kubernetes的单节点搭建-(超级简单)
  9. 【生信进阶练习1000days】day3-Bioconductor annotation resources
  10. 算法第四版_第二章_练习题_2.1.1~2.1.12