質問は十分に明確にする必要があり、それはクエリ "SELECT 1 ..."に "LIMIT 1"を使用するのは意味がありますか?
SELECT 1 FROM table ...
SELECT 1 FROM table ... LIMIT 1
の代わりに使用するための任意の利点がありますか?
質問は十分に明確にする必要があり、それはクエリ "SELECT 1 ..."に "LIMIT 1"を使用するのは意味がありますか?
SELECT 1 FROM table ...
SELECT 1 FROM table ... LIMIT 1
の代わりに使用するための任意の利点がありますか?
のは、あなたのテーブルには、万行を持っているとしましょう...
SELECT 1 FROM table ...
は万回...
SELECT 1 FROM table ... LIMIT 1
が値1
、1時間を返し、値1
を返します。あなたはEXISTS
チェックに関しては特に興味を持っていることを言及
EDIT
。念頭に置いて、これらの2つのクエリの間の機能差がないこれにように、第1行が、(EXISTS
この場合IN
よりも効率的である理由である)が見出された後EXISTS
は処理を停止:
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
);
完璧な説明、まさに私が知りたかったもの!マイケルありがとう! :) – Chris
これらは2つの非常に異なるものです。最初のクエリは、テーブルのすべてのレコードに対して「1」を取得し、2番目のクエリは1つのレコードのみを返します。だから、他のものの代わりに使用する利点はありますか?いいえ、それは匹敵しません。 – Lamak
@ラーマク:そうです、あなたは正しいです...私はエントリが存在するかどうかを確認することを意味したことを忘れました。 。 – Chris