這兩種方法有什麼區別?count(*)其中cond = val或count(cond = val)
select count(*) from `table` where `column` = 'value';
和
select count(`column` = 'value') from `table`;
對我來說,他們似乎做同樣的事情;我認爲這不是數據庫的情況。一種方法是否比其他方法更好地利用指標?
在這種情況下,我使用MySQL,但一般的答案在這裏是首選。
這兩種方法有什麼區別?count(*)其中cond = val或count(cond = val)
select count(*) from `table` where `column` = 'value';
和
select count(`column` = 'value') from `table`;
對我來說,他們似乎做同樣的事情;我認爲這不是數據庫的情況。一種方法是否比其他方法更好地利用指標?
在這種情況下,我使用MySQL,但一般的答案在這裏是首選。
計數(column
=「值」)
一般似乎意味着您計算比較,這應該算表中的所有行,雖然也許你特定的DBMS有異常的布爾結果。
在where子句中過濾查詢。如果您需要爲其他數據庫編寫類似的查詢,這將是一個好習慣。
通過mySQL運行您的示例會產生不同的結果。您發佈的第二個查詢不會限制結果集 - 返回所有行。然而,第一個查詢的確如此。
你似乎是正確的,我不知道爲什麼我認爲不然。 – 2010-10-28 06:50:01
奇怪的是,你可能會做一個SUM(CAST('column' ='value')AS BIT)並檢索計數,但這似乎是很多晦澀的工作以避免where子句。根據你的數據庫管理系統,這個轉換可能是不必要的。 – wllmsaccnt 2010-10-28 06:53:26
您需要指定您正在使用的DBMS。 – 2010-10-28 06:37:39