MySQLでのフィールドのスプライシング

  • 1.concat()関数
  • 2.concat_ws()関数
  • 3.group_concat()関数 

手術台

ID制限5によってtest_concat順序SELECT * FROM。

1.concat()関数

機能:単一の文字列に文字列を複数接続。

構文:CONCAT(STR1、 STR2は、...)、、接続パラメータ生成された文字列に結果を返す任意の引数がある場合であるnullの場合、戻り値はnullに

3、例えば:

ID制限5によってtest_concat順序から連結(領域、FR、best_history_data)を選択します。

あなたがいる場合、フィールド間の区切りを追加したい、二つのフィールドのそれぞれの間にセパレーターを追加する必要があり、より多くのトラブル:

( ''、 ''、FRの領域を、best_history_data)連結を選択し、ID制限5によってtest_concat順序からtest_resultとして。

2.concat_ws()関数

機能:及び連結()、単一の文字列に文字列を複数接続、しかしとして使い捨てデリミタ指定することができる〜(CONCAT_WSであるセパレータと連結)

構文:CONCAT_WS (セパレータ、STR1 、STR2 、...

说明:第一个参数指定分隔符。需要注意的是分隔符不能为null,如果为null,则返回结果为null

select concat_ws(',',area,fr,best_history_data) from test_concat order by id limit 5;

3.group_concat()函数

功能:将group by产生的同一个分组中的值连接起来,返回一个字符串结果。

语法:group_concat[distinct要连接的字段 [order by 排序字段 asc/desc  [separator '分隔符')

通过使用distinct可以排除重复值;如果希望对结果中的值进行排序,可以使用order by子句;separator是一个字符串值,缺省为一个逗号。

 

测试table

select * from test_table;

1.根据area分组,拼接每个区域各个指标的指标值

select group_concat(fr,best_history_data) from test_table group by area;

2.增加分割符

select group_concat(fr,best_history_data separator '|') from test_table group by area;

3.结合concat_ws()函数,在fr与best_history_data之间增加分割符-

select group_concat(concat_ws('-',fr,best_history_data) separator '|') from test_table group by area;

4.根据best_history_data进行排序

select group_concat(concat_ws('-',fr,best_history_data) order by best_history_data desc separator '|') from test_table group by area;

おすすめ

転載: www.cnblogs.com/mianbaoshu/p/11821112.html