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

MySQL SUM()関数は、一致する行を返さないSELECTステートメントで使用されているかどうかをどのように評価しますか?


一致する行を返さないSELECTステートメントでMySQLSUM()関数を使用すると、評価するものがなく、出力としてNULLが返されます。時々、出力として0を返す必要があると考えましたが、0はそれ自体が数値であり、一致する行がない場合、0を返すことは重要ではないため、NULLを返します。上記の概念を理解するために、次のレコードを持つ「employee_tbl」テーブルについて考えてみます-

mysql> SELECT * FROM employee_tbl;
+------+------+------------+--------------------+
| id   | name | work_date  | daily_typing_pages |
+------+------+------------+--------------------+
| 1    | John | 2007-01-24 | 250                |
| 2    | Ram  | 2007-05-27 | 220                |
| 3    | Jack | 2007-05-06 | 170                |
| 3    | Jack | 2007-04-06 | 100                |
| 4    | Jill | 2007-04-06 | 220                |
| 5    | Zara | 2007-06-06 | 300                |
| 5    | Zara | 2007-02-06 | 350                |
+------+------+------------+--------------------+
7 rows in set (0.00 sec)

これで、次のクエリを実行して「名前」列にない名前である「モハン」によって入力されたページの総数を見つけると、MySQL SUM()関数はNULLを返します-

>
mysql> SELECT SUM(daily_typing_pages) FROM employee_tbl WHERE Name = ‘Mohan’;
+-------------------------+
| SUM(daily_typing_pages) |
+-------------------------+
|          NULL           |
+-------------------------+
1 row in set (0.00 sec)

  1. MySQLを使用したJavaでのselectクエリにプリペアドステートメントを使用するにはどうすればよいですか?

    これにはexecuteQuery()を使用する必要があります。構文は次のとおりです- yourPreparedStatementObject=yourConnectionObject.prepareStatement(yourQueryName); yourresultSetObject=yourPreparedStatementObject.executeQuery(); データベースの「サンプル」にテーブルを作成します。テーブルを作成するためのクエリは次のとおりです- mysql> create table JavaPreparedStatement -> ( -

  2. MySQLで連結を介して条件付きの行を選択するにはどうすればよいですか?

    これには、CONCAT_WS()を使用できます。テーブルを作成しましょう- mysql> create table demo38 −> ( −> user_id int, −> user_first_name varchar(20), −> user_last_name varchar(20), −> user_date_of_birth date −> ); Query OK, 0 rows affected (1.70 sec) 挿入コマンド-を使用して、いくつかのレコードを