记录存在吗? count vs limit vs两个嵌套

时间:2012-12-15 12:28:34

标签: mysql

假设您要检查是否有任何行与查询匹配(如果表包含任何匹配项,则只返回true / false)。这是首选(也可选择,为什么)?还是有更好的方法?

SELECT COUNT(*) > 0 FROM someTable WHERE someField = someValue

SELECT someField = someValue FROM someTable WHERE someField = someValue LIMIT 1

SELECT COUNT(*) > 0 FROM (SELECT someValue FROM someTable WHERE someField = someValue LIMIT 1) someAlias;

1 个答案:

答案 0 :(得分:0)

我会使用EXISTS:

SELECT EXISTS (SELECT * FROM someTable);

如果子查询返回任何行,则返回1(True),否则返回0(False)。