MySQLでフィールドを連結する方法は?
MySQLのフィールドを連結するには、GROUP BYとともにGROUP_CONCAT()を使用できます。まずテーブルを作成しましょう-
mysql> create table DemoTable ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName varchar(30), StudentScore int ); Query OK, 0 rows affected (0.51 sec)
挿入コマンド-
を使用してテーブルにレコードを挿入しますmysql> insert into DemoTable( StudentName,StudentScore) values('Bob',80); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable( StudentName,StudentScore) values('Bob',80); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable( StudentName,StudentScore) values('Chris',90); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable( StudentName,StudentScore) values('Chris',70); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable( StudentName,StudentScore) values('Bob',50); Query OK, 1 row affected (0.17 sec) mysql> insert into DemoTable( StudentName,StudentScore) values('David',60); Query OK, 1 row affected (0.23 sec) mysql> insert into DemoTable( StudentName,StudentScore) values('Chris',99); Query OK, 1 row affected (0.09 sec) mysql> insert into DemoTable( StudentName,StudentScore) values('David',88); Query OK, 1 row affected (0.18 sec)
selectステートメントを使用してテーブルのすべてのレコードを表示する-
mysql> select * from DemoTable;
これにより、次の出力が生成されます-
+-----------+-------------+--------------+ | StudentId | StudentName | StudentScore | +-----------+-------------+--------------+ | 1 | Bob | 80 | | 2 | Bob | 80 | | 3 | Chris | 90 | | 4 | Chris | 70 | | 5 | Bob | 50 | | 6 | David | 60 | | 7 | Chris | 99 | | 8 | David | 88 | +-----------+-------------+--------------+ 8 rows in set (0.00 sec)
以下は、MySQLのフィールドを連結するためのクエリです-
mysql> select StudentName, group_concat(StudentScore separator ',') as Score from DemoTable group by StudentName;
これにより、次の出力が生成されます-
+-------------+----------+ | StudentName | Score | +-------------+----------+ | Bob | 80,80,50 | | Chris | 90,70,99 | | David | 60,88 | +-------------+----------+ 3 rows in set (0.24 sec)
-
MySQLでグループ化されたフィールドで並べ替える方法は?
グループ化されたフィールドをORDERBYするには、IN()とともにORDERBYCASEを使用します。 CASEはさまざまな条件を評価しますが、ORDERBYは値を昇順または降順で並べ替えます。 MySQL IN()は、一致するものを見つけるために使用されます。 まずテーブルを作成しましょう- mysql> create table DemoTable ( Value varchar(40) ); Query OK, 0 rows affected (0.52 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql>
-
MySQLでデータフィールドをマスクする方法は?
データフィールドをマスクするには、REPEAT()とともにCONCAT()を使用します。ここでは、データフィールドを#でマスクします。まず、-を作成しましょう mysql> create table DemoTable1410 -> ( -> Password varchar(80) -> ); Query OK, 0 rows affected (0.51 sec) insert-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTa