列の値が複数のレコード間で同じであるかどうかを確認し、MySQLで特殊文字で区切られた単一の行にこれらのレコードを設定します
このために、DISTINCTと一緒にGROUP_CONCAT()を使用できます。まずテーブルを作成しましょう-
mysql> create table DemoTable ( Id int, Subject varchar(40) ); Query OK, 0 rows affected (0.56 sec)
挿入コマンド-
を使用して、テーブルにいくつかのレコードを挿入しますmysql> insert into DemoTable values(100,'MySQL'); Query OK, 1 row affected (0.19 sec) mysql> insert into DemoTable values(100,'MongoDB'); Query OK, 1 row affected (0.20 sec) mysql> insert into DemoTable values(100,'Java'); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(100,'MongoDB'); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable values(101,'MySQL'); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable values(101,'MySQL'); Query OK, 1 row affected (0.10 sec)>
selectステートメントを使用してテーブルのすべてのレコードを表示する-
mysql> select *from DemoTable;
これにより、次の出力が生成されます-
+------+---------+ | Id | Subject | +------+---------+ | 100 | MySQL | | 100 | MongoDB | | 100 | Java | | 100 | MongoDB | | 101 | MySQL | | 101 | MySQL | +------+---------+ 6 rows in set (0.00 sec)
以下は、列の値が複数のレコード間で同じであるかどうかを確認し、これらのレコードを特殊文字で区切られた単一の行に設定するためのクエリです。ここでの区切り文字はハイフンです-
mysql> select Id,group_concat(distinct Subject separator '-') as Subject from DemoTable group by Id;
これにより、次の出力が生成されます-
+------+--------------------+ | Id | Subject | +------+--------------------+ | 100 | Java-MongoDB-MySQL | | 101 | MySQL | +------+--------------------+ 2 rows in set (0.04 sec)
-
MySQLでコンマで区切られた単一の行にすべての列の値を表示しますか?
これには、GROUP_CONCAT()およびCONCAT()を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1807 ( Id int ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1807 values(101); Query OK, 1 row a
-
特殊文字で区切られた単一の行に類似した対応するIDを持つレコードを連結するMySQLクエリ
このために、GROUP_CONCAT()と一緒にCONCAT_WS()を使用できます。まずを作成しましょう mysql> create table DemoTable2016 -> ( -> UserId int, -> UserName varchar(20) -> ); Query OK, 0 rows affected (0.51 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into D