Chr*_*ris 9 mysql sql database
这个问题应该足够明确,但是使用它代替它有什么好处
SELECT 1 FROM table ...
SELECT 1 FROM table ... LIMIT 1?
Mic*_*son 15
假设你的桌子有一百万行......
SELECT 1 FROM table ...
Run Code Online (Sandbox Code Playgroud)
将返回价值1,一百万次......
SELECT 1 FROM table ... LIMIT 1
Run Code Online (Sandbox Code Playgroud)
将返回值1一次.
编辑
你提到你对EXISTS支票特别感兴趣. EXISTS找到第一行后停止处理(这就是为什么EXISTS比IN这种情况更有效),所以考虑到这一点,这两个查询之间没有功能差异:
SELECT *
FROM tableA ta
WHERE EXISTS (
SELECT 1
FROM TableB tb
WHERE tb.ID = ta.ID
);
Run Code Online (Sandbox Code Playgroud)
和
SELECT *
FROM tableA ta
WHERE EXISTS (
SELECT 1
FROM TableB tb
WHERE tb.ID = ta.ID
LIMIT 1
);
Run Code Online (Sandbox Code Playgroud)