SQL判斷是否"存在",還在用 count 操作?
目前多數(shù)人的寫法
SQL寫法:
SELECT?count(*)?FROM?table?WHERE?a?=?1?AND?b?=?2??
?
Java寫法:
int?nums?=?xxDao.countXxxxByXxx(params);??
if?(?nums?>?0?)?{???
//當(dāng)存在時,執(zhí)行這里的代碼??
}???
else?{???
//當(dāng)不存在時,執(zhí)行這里的代碼??
}??
?
優(yōu)化方案
SQL寫法:
SELECT?1?FROM?table?WHERE?a?=?1?AND?b?=?2?LIMIT?1??
?
Java寫法:
Integer?exist?=?xxDao.existXxxxByXxx(params);??
if?(?exist?!=?NULL?)?{??
??//當(dāng)存在時,執(zhí)行這里的代碼??
}?else?{??
??//當(dāng)不存在時,執(zhí)行這里的代碼??
}??
?
count,而是改用LIMIT 1,讓數(shù)據(jù)庫查詢時遇到一條就返回,不要再繼續(xù)查找還有多少條了總結(jié)
評論
圖片
表情
