我使用的是 MySQL 5.1,我有一个大致如下形式的查询:
select count(*) from mytable where a = "foo" and b = "bar";
在我的程序中,它唯一检查的是它是零还是非零。如果我将其转换为:
select exists(select * from mytable where a = "foo" and b = "bar");
MySQL 是否足够聪明,可以在搜索到第一个时停止搜索?或者是否有其他方式与 MySQL 交流,我的目的只是找出是否有任何记录与此匹配,而我不需要精确计数?
最佳答案
是的,当使用 Exists 函数返回一行时,MySQL(实际上是我所知道的所有数据库系统)将停止处理。
您可以在 MySQL 文档中阅读更多内容: If a subquery returns any rows at all, EXISTS subquery is TRUE.
关于mysql - EXISTS 是否比 COUNT(*)>0 更有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5264658/