MySQLでのNOTNULL値の存在をカウントする
NOT NULL値の存在をカウントするには、集計関数COUNT(yourColumnName)を使用します。まずテーブルを作成しましょう-
mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, NumberOfQuestion int, NumberOfSolution int ); Query OK, 0 rows affected (0.20 sec)
挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。ここで、いくつかの値はNULLです-
mysql> insert into DemoTable(NumberOfQuestion,NumberOfSolution) values(20,10); Query OK, 1 row affected (0.06 sec) mysql> insert into DemoTable(NumberOfQuestion,NumberOfSolution) values(20,2); Query OK, 1 row affected (0.04 sec) mysql> insert into DemoTable(NumberOfQuestion,NumberOfSolution) values(20,NULL); Query OK, 1 row affected (0.03 sec) mysql> insert into DemoTable(NumberOfQuestion,NumberOfSolution) values(20,NULL); Query OK, 1 row affected (0.05 sec) mysql> insert into DemoTable(NumberOfQuestion,NumberOfSolution) values(30,19); Query OK, 1 row affected (0.04 sec) mysql> insert into DemoTable(NumberOfQuestion,NumberOfSolution) values(30,1); Query OK, 1 row affected (0.04 sec)
selectステートメントを使用してテーブルのすべてのレコードを表示する-
mysql> select *from DemoTable;
これにより、次の出力が生成されます-
+----+------------------+------------------+ | Id | NumberOfQuestion | NumberOfSolution | +----+------------------+------------------+ | 1 | 20 | 10 | | 2 | 20 | 2 | | 3 | 20 | NULL | | 4 | 20 | NULL | | 5 | 30 | 19 | | 6 | 30 | 1 | +----+------------------+------------------+ 6 rows in set (0.00 sec)
以下は、値の存在をカウントするためのクエリです。同じ値はNOTNULLである必要があります。つまり、NULL値はカウントされません-
mysql> SELECT NumberOfQuestion, COUNT(NumberOfSolution) as NumberOfRows FROM DemoTable GROUP BY NumberOfQuestion;
これにより、次の出力が生成されます-
+------------------+--------------+ | NumberOfQuestion | NumberOfRows | +------------------+--------------+ | 20 | 2 | | 30 | 2 | +------------------+--------------+ 2 rows in set (0.00 sec)
-
MySQLのNOTNULL値に1を設定します
NOT NULLを設定するには、ISNOTNULLを使用して値を見つけます。構文は次のとおりです- select if('' is not NULL,1,0) as anyAliasName; これが実際のクエリです- mysql> select if('' is not NULL,1,0); これにより、次の出力が生成されます- +------------------------+ | if('' is not NULL,1,0) | +------------------------+ |
-
MySQLの既存の列にNOTNULL属性を設定します
NOT NULL属性を既存の列に設定するには、ALTERTABLEコマンドを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1949 ( UserId int, UserName varchar(20) ); Query OK, 0 rows affected (0.00 sec) これは、既存の列にNOTNULL属性を設定するためのクエリです- mysql> alter table DemoTable1949 modify