MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

空のテーブルに対する「SELECTmax(rank)FROMtest」のnull結果を回避するにはどうすればよいですか?


これには、COALESCE()を集計関数MAX()と一緒に使用できます。

構文は次のとおりです

SELECT COALESCE(MAX(`yourColumnName`), 0) FROM yourTableName;

上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです

mysql> create table avoidNullDemo
   -> (
   -> `rank` int
   -> );
Query OK, 0 rows affected (0.53 sec)

挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。

クエリは次のとおりです

mysql> insert into avoidNullDemo values(10);
Query OK, 1 row affected (0.20 sec)
mysql> insert into avoidNullDemo values(NULL);
Query OK, 1 row affected (0.18 sec)
mysql> insert into avoidNullDemo values(20);
Query OK, 1 row affected (0.17 sec)
mysql> insert into avoidNullDemo values(NULL);
Query OK, 1 row affected (0.11 sec)
mysql> insert into avoidNullDemo values(100);
Query OK, 1 row affected (0.11 sec)
mysql> insert into avoidNullDemo values(NULL);
Query OK, 1 row affected (0.16 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示します。

クエリは次のとおりです

mysql> select *from avoidNullDemo;

以下は、NULL値の出力です

+------+
| rank |
+------+
| 10   |
| NULL |
| 20   |
| NULL |
| 100  |
| NULL |
+------+
6 rows in set (0.00 sec)

nullの結果を回避するためのクエリは次のとおりです

mysql> select COALESCE(MAX(`rank`), 0) FROM avoidNullDemo;

以下は出力です

+--------------------------+
| COALESCE(MAX(`rank`), 0) |
+--------------------------+
| 100                      |
+--------------------------+
1 row in set (0.00 sec)

これは、テーブルが空の場合です。

上記の表からすべてのレコードを削除しましょう。

クエリは次のとおりです

mysql> truncate table avoidNullDemo;
Query OK, 0 rows affected (0.92 sec)

これで、上記のテーブルは空になります。空のテーブルに対して上記のクエリを実装しましょう

mysql> select COALESCE(MAX(`rank`), 0) FROM avoidNullDemo;

以下は出力です

+--------------------------+
| COALESCE(MAX(`rank`), 0) |
+--------------------------+
| 0                        |
+--------------------------+
1 row in set (0.00 sec)

  1. JavaScriptを使用してテーブルにNULL値を挿入しないようにするにはどうすればよいですか?

    テーブルに挿入されたnull値を取り除くには、値を入力するときに条件を確認する必要があります。 NULLをチェックする条件は次のとおりです- while( !( yourVariableName1==null || yourVariableName2==null || yourVariableName3==null…...N){    // yourStatement1    .    .    N } 上記のロジックでは、null値を挿入することはできません。 これで、forループを使用して、

  2. MySQLから最後の10行を選択するにはどうすればよいですか?

    MySQLから最後の10行を選択するには、SELECTステートメントとLimitの概念でサブクエリを使用できます。以下は例です。 テーブルを作成します。 mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.75 sec) テーブルにレコードを挿入します。 mysql> insert into Last10RecordsDemo values(1,John),(