在MySQL表中测试行是否存在的最佳方法

420

我正在尝试找出表中是否存在某行。使用MySQL,以下哪种查询方式更好:

SELECT COUNT(*) AS total FROM table1 WHERE ...

检查总数是否为非零,还是最好像这样查询:

SELECT * FROM table1 WHERE ... LIMIT 1

并且检查是否返回了任何行?

在两个查询中,WHERE子句使用了索引。

12个回答

-1

或者您可以将原始SQL部分插入到条件中,例如:

'conditions'=>array('Member.id NOT IN (SELECT Membership.member_id FROM memberships AS Membership)')

-3

COUNT(*) 在 MySQL 中进行了优化,因此前面的查询通常会更快。


2
你是指MyISAM针对整个表选择计数的优化吗?如果有WHERE条件,我认为这并没有什么帮助。 - Bernard Chen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接