这个问题应该足够清楚,但是使用它来代替有什么好处吗?
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
);