这两种方法有什么区别?
select count(*) from `table` where `column` = 'value';
和
select count(`column` = 'value') from `table`;
对我来说,他们似乎做同样的事情;我认为这不是数据库的情况。一种方法是否比另一种更好地利用指数?
在这种情况下,我使用MySQL,但这里首选一般答案。
答案 0 :(得分:3)
count(column
='value')
通常似乎暗示你在计算比较的布尔结果,它应该计算表中的所有行,尽管你的特定DBMS可能有例外。
过滤where子句的查询。如果您需要为不同的数据库编写类似的查询,这将是一个好习惯。
答案 1 :(得分:0)
通过mySQL运行样本会产生不同的结果。您发布的第二个查询不限制结果集 - 返回所有行。但是,第一个查询确实如此。