ホームページ > データベース > mysql チュートリアル > mysql 関数 concat および group_concat の使用手順

mysql 関数 concat および group_concat の使用手順

jacklove
リリース: 2018-06-09 09:30:02
オリジナル
2217 人が閲覧しました

1.concat() 関数

使用方法: concat(str1,str2,…)
返される結果は、接続パラメータによって生成された文字列です。パラメータが null の場合、戻り値は null です

。注:
すべてのパラメータが非バイナリ文字列の場合、結果は非バイナリ文字列になります
引数にバイナリ文字列が含まれる場合、結果はバイナリ文字列になります
数値パラメータは、次の場合、同等のバイナリ文字列形式に変換されますこの状況を回避したい場合は、明示的な型キャストを使用できます

例:

select concat(cast(int_col as char), char_col);
ログイン後にコピー

使用例:
1. フィールドの両端に「,」を追加します

mysql> select concat(',',name,',') from `user`;
+--------------------------+| concat(',',fdipzone,',') |
+--------------------------+| ,fdipzone,               |
+--------------------------+1 row in set (0.00 sec)
ログイン後にコピー


2。パラメーターは null です

mysql> select concat(null,name) from `user`;
+-------------------+| concat(null,name) |
+-------------------+| NULL              |
+-------------------+1 row in set (0.00 sec)
ログイン後にコピー

2.concat_ws() 関数

使用方法:concat_ws(separator, str1, str2,…)

concat_ws() 関数は concat() 関数の特別な形式で、最初の最初のパラメーターです他のパラメータの区切り文字です。セパレータの位置は、連結される 2 つの文字列の間にあります。区切り文字には文字列またはその他のパラメータを使用できます。
区切り文字が null の場合、結果は null になります。
関数は区切り文字パラメーターの後の null 値を無視しますが、concat_ws() は空の文字列を無視しません。

使用例:
1. 複数のフィールドを区切るには、「,」を使用します

mysql> select concat_ws(',',country_code,phone,region) from `user`;
+------------------------------------------+| concat_ws(',',country_code,phone,region) |
+------------------------------------------+| 86,13794830550,GZ                        |
+------------------------------------------+1 row in set (0.00 sec)
ログイン後にコピー


3。

mysql> select concat_ws(null,country_code,phone,region) from `user`;
+-------------------------------------------+| concat_ws(null,country_code,phone,region) |
+-------------------------------------------+| NULL                                      |
+-------------------------------------------+1 row in set (0.00 sec)
ログイン後にコピー
3.group_concat() 関数

使用法:
GROUP_CONCAT([DISTINCT] expr [,expr …] [ORDER BY {unsigned_integer |col_name | Formula} [ASC | DESC] [,col …]] [SEPARATOR str_val] ])

group_concat は、式の組み合わせの接続値を取得し、distinct を使用して重複する値を除外できます。並べ替えは order by 句を使用して行うことができます。

separator は、結果セット内の各要素を区切るために使用される文字列です。デフォルトはカンマですが、区切り文字「」を指定することでこの区切り文字を完全に削除できます。

使用例:

テーブル構造

mysql> select concat_ws(',',country_code,phone,null,region,'',grade) from `user`;
+--------------------------------------------------------+| concat_ws(',',country_code,phone,null,region,'',grade) |
+--------------------------------------------------------+| 86,13794830550,GZ,,200                                 |
+--------------------------------------------------------+1 row in set (0.00 sec)
ログイン後にコピー

データの挿入:

CREATE TABLE `article_in_category` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `article_id` int(11) unsigned NOT NULL, `category_id` int(11) unsigned NOT NULL, PRIMARY KEY (`id`), KEY `article_id_INDEX` (`article_id`), KEY `category_id_INDEX` (`category_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ログイン後にコピー
INSERT INTO `article_in_category` (`id`, `article_id`, `category_id`) VALUES (NULL, '1', '1'),
(NULL, '1', '2'),(NULL, '1', '3'),(NULL, '2', '4'),(NULL, '2', '3'),(NULL, '2', '5'),(NULL, '3', '1'),
(NULL, '3', '5'),(NULL, '3', '6'),(NULL, '4', '8');
ログイン後にコピー
記事のIDとすべてのカテゴリIDを取得します
mysql> select * from `article_in_category`;
+----+------------+-------------+| id | article_id | category_id |
+----+------------+-------------+|  1 |          1 |           1 |
|  2 |          1 |           2 |
|  3 |          1 |           3 |
|  4 |          2 |           4 |
|  5 |          2 |           3 |
|  6 |          2 |           5 |
|  7 |          3 |           1 |
|  8 |          3 |           5 |
|  9 |          3 |           6 || 10 |          4 |           8 |
+----+------------+-------------+
ログイン後にコピー

注: group_concat() 関数には、返される結果の長さ制限があります。 、デフォルトは 1024 バイトです

group_concat 戻り値の最大長を表示する

mysql> select article_id,group_concat(category_id order by category_id asc) from `article_in_category` group by article_id;
+------------+----------------------------------------------------+| article_id | group_concat(category_id order by category_id asc) |
+------------+----------------------------------------------------+|          1 | 1,2,3                                              |
|          2 | 3,4,5                                              |
|          3 | 1,5,6                                              ||          4 | 8                                                  |
+------------+----------------------------------------------------+4 rows in set (0.00 sec)
ログイン後にコピー
group_concat 戻り値の最大長を変更する

mysql> show global variables like '%group_concat_max_len%';
+----------------------+-------+| Variable_name        | Value |
+----------------------+-------+| group_concat_max_len | 1024  |
+----------------------+-------+
ログイン後にコピー
この記事では、mysql 関数 concat と の使用手順について説明します。 group_concat。その他の関連コンテンツについては、PHP 中国語 Web サイトに注目してください。 関連する推奨事項:

mysql innodb の起動に失敗し、再起動できない場合の対処方法の説明


PHP で指定された日付を取得する方法の説明

以上がmysql 関数 concat および group_concat の使用手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート