2013-04-03 73 views
0

表EMPLOYEE中有一列工資。以下兩條陳述給出了不同的結果。可能的原因是什麼?這兩個MySQL查詢的輸出有什麼區別

查詢1

SELECT COUNT(*) FROM EMPLOYEE; 

查詢2

SELECT COUNT(SALARY) FROM EMPLOYEE; 

這個問題問的考試,但如果我留1名員工空白的工資,我沒有得到任何區別,甚至

+2

請參閱此處的完整說明:http://www.mysqlperformanceblog.com/2007/04/10/count-vs-countcol/ – Hackerman 2013-04-03 18:50:18

+0

關於您的編輯,空白**與NULL不相同。 – ceejayoz 2013-04-03 19:00:53

回答

1

SELECT COUNT(SALARY) FROM EMPLOYEE將排除薪水爲NULL的員工。

+0

不,我算作8,即使我有1名員工薪水爲NULL。但是,當我選擇員工薪水顯示0 – user2241865 2013-04-03 18:52:57

+0

然後你沒有將其設置爲NULL,或列的模式不允許NULL值,從而將您的NULL變成零。 – ceejayoz 2013-04-03 19:01:43

+0

是的,我得到了答案 如果salary列被定義爲NULL,並且如果任何員工的工資缺失,則count將跳過那些空值記錄。我從http://cbsecsnip.in得到這個 – user2241865 2013-04-03 19:06:44