SQL查询数据是否存在

SQL查询是否存在


根据某一条件从数据库表中查询是否有数据存在。
大多数时候,我们习惯性使用count。

count

大多数时候,我们在业务中会“肌肉记忆”,使用count来做这样的需求
mapper.xml中:

<select id="countBusinessNum" resultType="Integer">
	SELECT COUNT(1) AS RESULT_NUM FROM TABLE_NAME WHERE COLUMN_A=1
</select>

后台逻辑中:

Integer resultNum = sqlMapper.countBusinessNum();
if (0 < resultNum){
	//存在
}else{
	//不存在
}

然而在实际运行中,这种查询依然会查询到所有的符合条件的结果,然后进行计数。

优化

mapper.xml中:

<select id="existOrNot" resultType="Integer">
	SELECT 1 FROM TABLE_NAME WHERE COLUMN_A=1 LIMIT 1
</select>

后台逻辑中:

Integer exist = sqlMapper.existOrNot();
if (null != exist){
	//存在
}else{
	//不存在
}

使用 LIMIT 1,让数据库查询时遇到一条就返回,不再继续查找了。业务代码中直接判断是否非空即可。

总结

当原SQL查询结果中的返回数据条数越多的时候,性能优化效果越明显。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值