対応する列の1つの値に基づいて、連結をグループ化し、データを1つの行に配置するMySQLクエリ?
これには、GROUP_CONCAT()を使用します。値が1つだけの場合は、MySQLWHERE句を使用します。まずテーブルを作成しましょう-
mysql> create table DemoTable ( PlayerName varchar(40), PlayerStatus tinyint(1) ); Query OK, 0 rows affected (0.60 sec)
挿入コマンド-
を使用して、テーブルにいくつかのレコードを挿入しますmysql> insert into DemoTable values('Chris',1); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable values('David',0); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable values('Sam',1); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable values('Carol',1); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable values('Bob',0); Query OK, 1 row affected (0.14 sec)
selectステートメントを使用してテーブルのすべてのレコードを表示する-
mysql> select *from DemoTable;
これにより、次の出力が生成されます-
+------------+--------------+ | PlayerName | PlayerStatus | +------------+--------------+ | Chris | 1 | | David | 0 | | Sam | 1 | | Carol | 1 | | Bob | 0 | +------------+--------------+ 5 rows in set (0.00 sec)
以下は、対応する列の1つの値に基づいて、連結をグループ化し、データを1つの行に配置するクエリです-
mysql> select group_concat(PlayerName) from DemoTable where PlayerStatus=1;
これにより、次の出力が生成されます-
+--------------------------+ | group_concat(PlayerName) | +--------------------------+ | Chris,Sam,Carol | +--------------------------+ 1 row in set (0.00 sec)
-
対応する列の値からNO値のみのカウントを返すMySQLクエリ
まずテーブルを作成しましょう- mysql> create table DemoTable1829 ( Name varchar(20), isTopper ENUM('YES','NO') ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTabl
-
多くの行の文字列を1つの行に結合し、対応するユーザーIDの合計を別の列に表示する単一のMySQLクエリ?
これには、GROUP_CONCAT()を使用できます。 SUM()を使用してユーザーIDを追加します。まずテーブルを作成しましょう- mysql> create table DemoTable1960 ( StudentId int, StudentName varchar(20) ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTa