sql查询是否存在某个记录(是否存在某一行)

学习自html

https://www.cnblogs.com/xunziji/p/6343891.html
sql


今天查了下,发现网上的没有一个sql语句写的好的。性能

判断记录是否存在,要不是语句不够简洁,要不就是性能有很大问题。学习

 

我进行了优化后,最简洁简单性能最优的的sql语句,用来判断表中的记录是否存在:优化

select isnull((select top(1) 1 from tableName where conditions), 0)spa

结果为 1,则说明记录存在;结果为 0,则说明记录不存在。 htm

 

网上的常见的有问题的语句:blog

 

错误1:索引

select COUNT(*) from tableName where conditions资源

count(*) 计算会对汇集索引进行扫描和计算,reads 特别多,特别是 cpu 资源占用极大。

 

错误2:

if exists (select * from tableName where conditions) select '1' else select '0'

这种方法稍微有点灵性,可是却很不简洁。

同时因为 select * 前面有 exists ,因此该语句并无性能问题,只是语法不够简洁