阅读一些SQL Tuning文档我发现了这个:
Select count(*):
- 计算行数
- 通常不正确地用于验证记录的存在
是否Select count(*)真的如此糟糕?
验证记录存在的正确方法是什么?
以下查询适用于 PostgreSQL 和 MS SQL,但不适用于 MYSQL
SELECT 1 as retVal WHERE EXISTS (SELECT 1 FROM posts WHERE topic = 'Sports')
Run Code Online (Sandbox Code Playgroud)
以下查询适用于 PostgreSQL 和 MySQL,但不适用于 MS SQL
SELECT EXISTS (SELECT 1 FROM posts WHERE topic = 'Sports')
Run Code Online (Sandbox Code Playgroud)
需要一个适用于所有三个供应商的查询。