質問は十分に明確である必要がありますが、代わりに使用することには利点がありますか
SELECT 1 FROM table ...
SELECT 1 FROM table ... LIMIT 1
?
テーブルに100万行あるとしましょう...
SELECT 1 FROM table ...
値を返します1
、百万回...
SELECT 1 FROM table ... LIMIT 1
1
値を1回返します。
編集
あなたは、EXISTS
小切手に関して特に興味があると述べています。 最初の行が見つかった後に処理を停止します(これがこの場合よりも効率的でEXISTS
ある理由です)。したがって、これを念頭に置いて、これら2つのクエリの間に機能的な違いはありません。EXISTS
IN
SELECT *
FROM tableA ta
WHERE EXISTS (
SELECT 1
FROM TableB tb
WHERE tb.ID = ta.ID
);
と
SELECT *
FROM tableA ta
WHERE EXISTS (
SELECT 1
FROM TableB tb
WHERE tb.ID = ta.ID
LIMIT 1
);