普遍写法
SQL:
SELECT count(*) FROM table_name WHERE condition1 AND …
Java:
int nums = xxMapper.countXxxxByXxx(params);
if ( nums > 0 ) {
//当存在时,执行这里的代码
} else {
//当不存在时,执行这里的代码
}
优化
SQL
MySQL写法
SELECT 1 FROM table_name WHERE condition1 AND … LIMIT 1
Oracle写法
SELECT 1 FROM table_name WHERE condition1 AND … AND ROWNUM = 1
Java:
Integer exist = xxMapper.existXxxxByXxx(params);
if ( exist != NULL ) {
//当存在时,执行这里的代码
} else {
//当不存在时,执行这里的代码
}
SQL不再使用count,而是改用LIMIT 1 (MySQL) 或者 ROWNUM = 1 (Oracle),让数据库查询时遇到一条就返回