2015-07-13 68 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

這很有道理!感謝您的跟進,您的回答非常有幫助:) –

相關問題