2015-07-13 69 views

回答

1

你可以做

SELECT COUNT(*) it_exists 
    FROM 
(
    SELECT 1 
    FROM MyTable 
    WHERE name = 'Todd' 
    LIMIT 1 
) q; 

一个内部的选择保证LIMIT应用。这意味着如果您假设成千上万的匹配行数据库引擎将停止并在第一个结果之后返回结果,而不是遍历所有结果。

输出

 
| it_exists | 
|-----------| 
|   1 | 

下面是SQLFiddle演示

+0

我的SQLite的技能是有点弱,是 'name_exists' 和 'q' 有什么目的?它似乎没有任何 –

+1

'name_exists',或者更确切地说'it_exists'在答案的更新版本中是列别名,因此您可以将它作为客户端代码中的其他列进行读取。 'q'是子查询的别名(内部选择)。有一个很好的做法(某些数据库系统,如MySQL或SQLServer如果没有一个,会抛出异常)。它可以命名,但是你当然想要。 – peterm

+0

这很有道理!感谢您的跟进,您的回答非常有帮助:) –

相关问题