sql >> データベース >  >> RDS >> Mysql

mySQL / SQLのcount(0)、count(1)..、count(*)の違いは何ですか?

    定数値または*

    の代わりに、テーブル内のフィールドまたは括弧内の式を指定しない限り、実際には何もありません。

    詳細な回答をさせていただきます。 Countは、指定されたフィールドのnull以外のレコード番号を提供します。 Aという名前のテーブルがあるとします

    select 1 from A
    select 0 from A
    select * from A
    

    すべて同じ数のレコード、つまりテーブルAの行数を返します。それでも出力は異なります。テーブルに3つのレコードがある場合。フィールド名としてXとYを使用

    select 1 from A will give you
    
    1
    1
    1
    
    select 0 from A will give you
    0
    0
    0
    
    select * from A will give you ( assume two columns X and Y is in the table )
    X      Y
    --     --
    value1 value1
    value2 (null)
    value3 (null)
    

    したがって、3つのクエリはすべて同じ数値を返します。使用しない限り

    select count(Y) from A 
    

    null以外の値は1つしかないため、出力として1を取得します



    1. PHP:mysql_connectがFALSEを返さない

    2. SQLテーブルの列で大小の関連データを分離する方が効率的ですか?

    3. Excelの日付番号をOracleの日付に変更します

    4. java.sql.TimestampでJoda-Timeを使用する方法