这个问题应该足够清楚,但是使用它来代替有什么好处吗?
SELECT 1 FROM table ...
SELECT 1 FROM table ... LIMIT 1
?
假设您的表有一百万行...
SELECT 1 FROM table ...
将返回值1
,一百万次...
SELECT 1 FROM table ... LIMIT 1
将返回值1
,一次。
编辑
您提到您对EXISTS
支票特别感兴趣。 EXISTS
在找到第一行后停止处理(这就是为什么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
);