MySQLにレコードが存在しない場合に合計または0を選択するにはどうすればよいですか?
COALESCE()内で集計関数sum()を使用できます。以下の構文は、レコードが存在する場合はすべての合計を返し、そうでない場合は0が返されます。構文は次のとおりです。
select COALESCE(sum(yourColumnName2), 0) AS anyVariableName from yourTableName where yourColumnName1 like '%yourValue%';
上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです。
mysql> create table SumDemo -> ( -> Words varchar(100), -> Counter int -> ); Query OK, 0 rows affected (0.93 sec)
挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです。
mysql> insert into SumDemo values('Are You There',10); Query OK, 1 row affected (0.16 sec) mysql> insert into SumDemo values('Are You Not There',15); Query OK, 1 row affected (0.13 sec) mysql> insert into SumDemo values('Hello This is MySQL',12); Query OK, 1 row affected (0.09 sec) mysql> insert into SumDemo values('Hello This is not MySQL',14); Query OK, 1 row affected (0.24 sec)
selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです。
mysql> select *from SumDemo;
以下は出力です。
+-------------------------+---------+ | Words | Counter | +-------------------------+---------+ | Are You There | 10 | | Are You Not There | 15 | | Hello This is MySQL | 12 | | Hello This is not MySQL | 14 | +-------------------------+---------+ 4 rows in set (0.00 sec)>
これは、レコードが存在する場合は常に合計を求めるクエリです。
mysql> select COALESCE(sum(Counter), 0) AS SumOfAll from SumDemo where Words like '%hello%';
以下は出力です。
+----------+ | SumOfAll | +----------+ | 26 | +----------+ 1 row in set (0.00 sec)
レコードが存在しない場合は、0になります。クエリは次のとおりです。
mysql> select COALESCE(sum(Counter), 0) AS SumOfAll from SumDemo where Words like '%End of MySQL%';
以下は出力です。
+----------+ | SumOfAll | +----------+ | 0 | +----------+ 1 row in set (0.00 sec)
-
MySQLで再帰的なSELECTクエリを実行するにはどうすればよいですか?
再帰的選択については、例を見てみましょう。まず、テーブルを作成します。 CREATEコマンドを使用してテーブルを作成します。 ); Query OK, 0 rows affected (0.61 sec) 次に、テーブル「tblSelectDemo」にレコードを挿入します。 insert into tblSelectDemo values(5,Bob); Query OK, 1 row affected (0.18 sec) すべてのレコードを表示します。 SELECT *from tblSelectDemo; これが出力です。 +------+-------+ | id
-
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),(