SQL查詢(xún)數(shù)據(jù)是否存在的實(shí)現(xiàn)示例
根據(jù)某一條件從數(shù)據(jù)庫(kù)表中查詢(xún)是否有數(shù)據(jù)存在。
大多數(shù)時(shí)候,我們習(xí)慣性使用count。
count
大多數(shù)時(shí)候,我們?cè)跇I(yè)務(wù)中會(huì)“肌肉記憶”,使用count來(lái)做這樣的需求
mapper.xml中:
<select id="countBusinessNum" resultType="Integer"> SELECT COUNT(1) AS RESULT_NUM FROM TABLE_NAME WHERE COLUMN_A=1 </select>
后臺(tái)邏輯中:
Integer resultNum = sqlMapper.countBusinessNum();
if (0 < resultNum){
//存在
}else{
//不存在
}
然而在實(shí)際運(yùn)行中,這種查詢(xún)依然會(huì)查詢(xún)到所有的符合條件的結(jié)果,然后進(jìn)行計(jì)數(shù)。
優(yōu)化
mapper.xml中:
<select id="existOrNot" resultType="Integer"> SELECT 1 FROM TABLE_NAME WHERE COLUMN_A=1 LIMIT 1 </select>
后臺(tái)邏輯中:
Integer exist = sqlMapper.existOrNot();
if (null != exist){
//存在
}else{
//不存在
}
使用 LIMIT 1,讓數(shù)據(jù)庫(kù)查詢(xún)時(shí)遇到一條就返回,不再繼續(xù)查找了。業(yè)務(wù)代碼中直接判斷是否非空即可。
總結(jié)
當(dāng)原SQL查詢(xún)結(jié)果中的返回?cái)?shù)據(jù)條數(shù)越多的時(shí)候,性能優(yōu)化效果越明顯。
到此這篇關(guān)于SQL查詢(xún)數(shù)據(jù)是否存在的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)SQL查詢(xún)數(shù)據(jù)是否存在內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
sql?server數(shù)據(jù)庫(kù)如何進(jìn)行sql注入
這篇文章主要介紹了sql?server數(shù)據(jù)庫(kù)如何進(jìn)行sql注入,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-05-05
修復(fù)SQL Server數(shù)據(jù)庫(kù)中的恢復(fù)掛起狀態(tài)的方法總結(jié)
SQL 服務(wù)器恢復(fù)掛起可能是因?yàn)樵诮馕鰯?shù)據(jù)庫(kù)中的某些事務(wù)期間系統(tǒng)關(guān)閉不當(dāng),在本文中,將向你提供各種方法來(lái)修復(fù) SQL Server 數(shù)據(jù)庫(kù)中的恢復(fù)掛起狀態(tài),需要的朋友可以參考下2024-03-03
實(shí)例理解SQL中truncate和delete的區(qū)別
這篇文章主要介紹了實(shí)例理解SQL中truncate和delete的區(qū)別,truncate和delete兩者易混,本文就為大家進(jìn)行區(qū)分兩者的異同,感興趣的小伙伴們可以參考一下2016-02-02
Sqlserver 2000/2005/2008 的收縮日志方法和清理日志方法
講解一下sql 2005日志怎么清理。一般情況下,SQL數(shù)據(jù)庫(kù)的收縮并不能很大程度上減小數(shù)據(jù)庫(kù)大小,其主要作用是收縮日志大小,應(yīng)當(dāng)定期進(jìn)行此操作以免數(shù)據(jù)庫(kù)日志過(guò)大2012-07-07
SQL Server中通過(guò)擴(kuò)展存儲(chǔ)過(guò)程實(shí)現(xiàn)數(shù)據(jù)庫(kù)的遠(yuǎn)程備份與恢復(fù)
SQL Server中通過(guò)擴(kuò)展存儲(chǔ)過(guò)程實(shí)現(xiàn)數(shù)據(jù)庫(kù)的遠(yuǎn)程備份與恢復(fù)實(shí)現(xiàn)方法,需要的朋友可以參考下2012-05-05

