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

MySQLのGROUP_CONCAT()を使用して、複数の行のデータを連結しますか?


最初にテーブルを作成しましょう-

mysql> create table DemoTable (CountryName varchar(100));
Query OK, 0 rows affected (1.01 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable values('US');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values('AUS');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('UK');
Query OK, 1 row affected (0.19 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select *from DemoTable;

これにより、次の出力が生成されます-

+-------------+
| CountryName |
+-------------+
| US          |
| AUS         |
| UK          |
+-------------+
3 rows in set (0.00 sec)

これは、複数の行を連結するためのクエリです。プロシージャを作成しています-

mysql> DELIMITER //
mysql> CREATE PROCEDURE searchDemo(in stringValue varchar(255), out output text)
   BEGIN
      select group_concat(distinct CountryName order by CountryName) into output from DemoTable where
      CountryName like stringValue;
   END
   //
Query OK, 0 rows affected (0.18 sec)
mysql> DELIMITER ;

callコマンドを使用してストアドプロシージャを呼び出します-

mysql> call searchDemo('U%',@output);
Query OK, 1 row affected, 2 warnings (0.04 sec)

変数@output-

の値を確認しましょう
mysql> select @output;

これにより、次の出力が生成されます-

+---------+
| @output |
+---------+
| UK,US   |
+---------+
1 row in set (0.00 sec)

  1. 複数のテーブルのデータを使用してMySQLビューを作成するにはどうすればよいですか?

    MySQL UNION演算子は、2つ以上の結果セットを組み合わせることができるため、UNION演算子を使用して、複数のテーブルのデータを含むビューを作成できます。この概念を理解するために、次のデータを持つベーステーブル「Student_info」と「Student_detail」を使用しています- mysql> Select * from Student_info; +------+---------+------------+------------+ | id   | Name    | Address    | Subject &n

  2. 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),(