mysql では、カラム変換関数は "group_concat()" 関数です。この関数は、グループ化条件に従って null 以外のカラム値をマージし、最終的にそれらを返すために使用されます。 null 値が含まれている場合、返される結果は空です。構文は「select group_concat(名前区切り文字 ';') テーブル名から列名;」です。
このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。
GROUP_CONCAT(expr) この関数はグループ化条件に従ってnull以外のカラム値を結合し、最終的に戻ります。 null 値がある場合は、null として返されます。
MySQL で、列を行に変換するにはどうすればよいですか?たとえば、各製品は複数のカテゴリに属します (たとえば、ファーウェイの携帯電話は携帯電話またはデジタル カテゴリに分類できます) この製品のすべてのカテゴリを 1 つのデータに表示する方法。
このアイデアは非常にシンプルで、MySQL 関数 group_concat を通じて解決できます。
テスト テーブルの作成:
create table test.test_mysql_liezhuanhang ( id bigint auto_increment comment '主键', name varchar(100), age int(5), primary key (id) )engine=innodb default charset=utf8mb4 comment='测试表'
テスト データのインポート:
insert into test.test_mysql_liezhuanhang (name, age) values ('李威', 18), ('李威', 19), ('李威', 18), ('李白', 20), ('李白', 20), ('李白', 19);
すべての名前をセミコロンで区切って表示します。デフォルトは ,
select group_concat(name separator ';') concat from test.test_mysql_liezhuanhang ;で区切られます。
すべての名前を表示し、同じ名前の重複を削除します
select group_concat(distinct name) concat from test.test_mysql_liezhuanhang ;
すべての年齢を表示し、重複を削除し、年齢で昇順に並べ替えます注文
select group_concat(distinct age order by age) concat from test.test_mysql_liezhuanhang ;
推奨学習: mysql ビデオ チュートリアル
以上がmysqlのカラム変換関数とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。