按照一定条件从数据库表中查询“是”和“否”,只有两种状态,所以为什么写SQL的时候还要SELECTcount(*)?无论是刚入道的新星程序员,还是征战沙场多年的老程序员,都是一如既往。目前大多数人在多次review代码的时候都会写count。在业务代码中,需要根据一个或多个条件查询是否有记录,不管有多少条记录。常见的SQL和代码写法如下#####SQL写法:SELECTcount(*)FROMtableWHEREa=1ANDb=2#####Java写法:intnums=xxDao.countXxxxByXxx(params);if(nums>0){//存在时,执行这里的代码}else{//不存在时,执行这里的代码}是否OK,没有问题?2LIMIT1#####Java写法:Integerexist=xxDao.existXxxxByXxx(params);if(exist!=NULL){//存在时执行这里的代码}else{//不存在时执行codehere}SQL不再使用count,而是使用LIMIT1,这样查询数据库的时候,遇到一个就返回,不要再继续找多少了。业务代码可以直接判断是否不为空,然后根据查询条件对找到的结果进行汇总,条目数越多,性能提升越明显。在某些情况下,还可以减少联合索引的创建。
