mysqlのconcat concat_ws group_concat

3424 ワード

compact
変数名とその値を含む配列を作成します.たとえば、次のようにします.
$firstname = "Bill";
$lastname = "Gates";
$age = "60";
$result = compact("firstname", "lastname", "age");
print_r($result);  //Array ( [firstname] => Bill [lastname] => Gates [age] => 60 ) 

concat
CONCAT(str 1,str 2,...)は、接続パラメータの結果として生成された文字列を返します.いずれかのパラメータがNULLの場合、NULLが返されます.
concat_ws
CONCAT_WS(separator,str1,str2,...) CONCAT_WS()はCONCAT With Separatorを表し、CONCAT()の特殊な形式である.最初のパラメータは、他のパラメータの区切り記号です.区切り記号の位置は、接続する2つの文字列の間に配置されます.区切り記号は、文字列であってもよいし、他のパラメータであってもよい.セパレータがNULLの場合、結果はNULLになります.関数は、任意の区切り記号パラメータのNULL値を無視します.**MySQLのconcat関数とは異なり、concat_ws関数は、実行時にNULL値のためにNULL**を返すことはありません.
GROUP_CONCAT()関数
GROUP_CONCAT関数は、パケット内の値接続を組み合わせた文字列結果を返します.表infoを例として使用し、文SELECT locus,id,journal FROM info WHERE locus IN('AB 086827','AF 040764');の戻り結果は、+--------------+-------------------------------------------------+|locus|id|journal|+-------------------------------------------------+|AB 086827|1|Unpublished||AB 086827|2|Submitted(20-JUN-2002)||AF 040764|23|Unpublished||AF 040764|24|Submitted(31-DEC-1997)|+-----------------------------------+----+---------------------------------------------------------------------------------------------------------------------------
1、使用文法及び特徴:GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] [,col ...]] [SEPARATOR str_val])MySQLでは、式結合体の連結値を得ることができます.DISTINCTを使用することで、重複値を除外できます.結果の値をソートする場合は、ORDER BY句を使用します.SEPARATORは、結果値に挿入する文字列値です.デフォルトはカンマ(",")で、SEPARATOR""を指定することでこの区切り文字を完全に削除できます.変数group_concat_max_len最大の長さを設定します.実行時に実行される構文は、SET[SESSION|GLOBAL]group_concat_max_len = unsigned_integer; 最大長さが設定されている場合、結果値はこの最大長さに切り取られます.グループの文字が長すぎる場合、システムパラメータを設定できます:SET@@global.group_concat_max_len=40000;
2、使用例:文SELECT locus,GROUP_CONCAT(id) AS g_id FROM info WHERE locus IN('AB086827','AF040764') GROUP BY locus; の戻り値は+------------------------------------------+|locus|GROUP_CONCAT(id) | g_id +----------+------------------+ | AB086827 | 1,2 | | AF040764 | 23,24 | +----------+------------------+
文SELECT locus,GROUUP_CONCAT(distinct id ORDER BY id DESC SEPARATOR '') FROM info WHERE locus IN('AB086827','AF040764') GROUP BY locus;の戻り結果は+--------------------------------------------------------------------------------------------------+|locus|GROUP_CONCAT(distinct id ORDER BY id DESC SEPARATOR '') | +----------+----------------------------------------------------------+ | AB086827 | 2_1 | | AF040764 | 24_23 | +----------+----------------------------------------------------------+
文SELECT locus,GROUUP_CONCAT(concat_ws(', ',id,journal) ORDER BY id DESC SEPARATOR '. ') FROM info WHERE locus IN('AB086827','AF040764') GROUP BY locus;の戻り結果は+---------------------------------------------------------------------------------------------------------+|locus|GROUP_CONCAT(concat_ws(', ',id,journal) ORDER BY id DESC SEPARATOR '. ') | +----------+--------------------------------------------------------------------------+ | AB086827 | 2, Submitted (20-JUN-2002). 1, Unpublished | | AF040764 | 24, Submitted (31-DEC-1997) . 23, Unpublished | +----------+--------------------------------------------------------------------------+