compact
創(chuàng)建一個(gè)包含變量名和它們的值的數(shù)組
例如:
$firstname = "Bill";
$lastname = "Gates";
$age = "60";
$result = compact("firstname", "lastname", "age");
print_r($result); //Array ( [firstname] => Bill [lastname] => Gates [age] => 60 )
concat
CONCAT(str1,str2,…)
返回結(jié)果為連接參數(shù)產(chǎn)生的字符串。如有任何一個(gè)參數(shù)為NULL 缕粹,則返回值為 NULL。
concat_ws
CONCAT_WS(separator,str1,str2,...)
CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一個(gè)參數(shù)是其它參數(shù)的分隔符。分隔符的位置放在要連接的兩個(gè)字符串之間蚓炬。分隔符可以是一個(gè)字符串,也可以是其它參數(shù)躺屁。
如果分隔符為 NULL肯夏,則結(jié)果為 NULL。函數(shù)會(huì)忽略任何分隔符參數(shù)后的 NULL 值犀暑。
**和MySQL中concat函數(shù)不同的是, concat_ws函數(shù)在執(zhí)行的時(shí)候,不會(huì)因?yàn)镹ULL值而返回NULL **
GROUP_CONCAT()函數(shù)
GROUP_CONCAT函數(shù)返回一個(gè)字符串結(jié)果驯击,該結(jié)果由分組中的值連接組合而成。
使用表info作為示例耐亏,其中語(yǔ)句SELECT locus,id,journal FROM info WHERE locus IN('AB086827','AF040764');的返回結(jié)果為
+----------+----+--------------------------+
| locus | id | journal |
+----------+----+--------------------------+
| AB086827 | 1 | Unpublished |
| AB086827 | 2 | Submitted (20-JUN-2002) |
| AF040764 | 23 | Unpublished |
| AF040764 | 24 | Submitted (31-DEC-1997) |
+----------+----+--------------------------+
1徊都、使用語(yǔ)法及特點(diǎn):
GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] [,col ...]]
[SEPARATOR str_val])
在 MySQL 中,你可以得到表達(dá)式結(jié)合體的連結(jié)值广辰。通過(guò)使用 DISTINCT 可以排除重復(fù)值暇矫。如果希望對(duì)結(jié)果中的值進(jìn)行排序,可以使用 ORDER BY 子句择吊。
SEPARATOR 是一個(gè)字符串值李根,它被用于插入到結(jié)果值中。缺省為一個(gè)逗號(hào) (",")几睛,可以通過(guò)指定 SEPARATOR "" 完全地移除這個(gè)分隔符房轿。
可以通過(guò)變量 group_concat_max_len 設(shè)置一個(gè)最大的長(zhǎng)度。在運(yùn)行時(shí)執(zhí)行的句法如下: SET [SESSION | GLOBAL] group_concat_max_len = unsigned_integer;
如果最大長(zhǎng)度被設(shè)置,結(jié)果值被剪切到這個(gè)最大長(zhǎng)度冀续。如果分組的字符過(guò)長(zhǎng)琼讽,可以對(duì)系統(tǒng)參數(shù)進(jìn)行設(shè)置:SET @@global.group_concat_max_len=40000;
2、使用示例:
語(yǔ)句 SELECT locus,GROUP_CONCAT(id) AS g_id FROM info WHERE locus IN('AB086827','AF040764') GROUP BY locus; 的返回結(jié)果為
+----------+------------------+
| locus | GROUP_CONCAT(id) | g_id
+----------+------------------+
| AB086827 | 1,2 |
| AF040764 | 23,24 |
+----------+------------------+
語(yǔ)句 SELECT locus,GROUP_CONCAT(distinct id ORDER BY id DESC SEPARATOR '') FROM info WHERE locus IN('AB086827','AF040764') GROUP BY locus;的返回結(jié)果為
+----------+----------------------------------------------------------+
| locus | GROUP_CONCAT(distinct id ORDER BY id DESC SEPARATOR '') |
+----------+----------------------------------------------------------+
| AB086827 | 2_1 |
| AF040764 | 24_23 |
+----------+----------------------------------------------------------+
語(yǔ)句SELECT locus,GROUP_CONCAT(concat_ws(', ',id,journal) ORDER BY id DESC SEPARATOR '. ') FROM info WHERE locus IN('AB086827','AF040764') GROUP BY locus;的返回結(jié)果為
+----------+--------------------------------------------------------------------------+
| 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 |
+----------+--------------------------------------------------------------------------+