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

