假设您要检查是否有任何行与查询匹配(如果表包含任何匹配项,则只返回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;
答案 0 :(得分:0)
我会使用EXISTS:
SELECT EXISTS (SELECT * FROM someTable);
如果子查询返回任何行,则返回1(True),否则返回0(False)。