在查询"SELECT 1 ..."中使用"LIMIT 1"是否有意义?

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找到第一行后停止处理(这就是为什么EXISTSIN这种情况更有效),所以考虑到这一点,这两个查询之间没有功能差异:

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)