mysql按字段多条组合_MySQL按分组把字段值组合成一个结果
MySQL如何把多個(gè)字段合并成一條記錄呢?現(xiàn)在的需求是這樣的:購(gòu)物車中有很多個(gè)商品,對(duì)應(yīng)于購(gòu)物車表,而購(gòu)物車中的每個(gè)商品會(huì)有規(guī)格,因此也對(duì)應(yīng)一個(gè)規(guī)格表,而規(guī)格表是一對(duì)多的關(guān)聯(lián),即一個(gè)商品對(duì)應(yīng)多個(gè)規(guī)格。現(xiàn)在的問(wèn)題是,如何在查詢sql的時(shí)候,將多個(gè)規(guī)格名稱連接起來(lái),用于app端直接顯示使用!
舉例CREATETABLEIFNOTEXISTS`tet`(
`id`int(11)NOTNULL,
`name`varchar(255)NOTNULL,
`url`varchar(255)NOTNULL
)ENGINE=InnoDBDEFAULTCHARSET=utf8;
轉(zhuǎn)存表中的數(shù)據(jù)`tet`
INSERTINTO`tet`(`id`,`name`,`url`)VALUES
(1,'百度','http://www.111cn.net'),
(0,'google','http://www.google.com.hk'),
(3,'400電話','http://www.111cn.net');
需求
將多條記錄中的name字段連接起來(lái)
實(shí)現(xiàn)方式
使用mysql的group_concat函數(shù)實(shí)現(xiàn)!SELECTGROUP_CONCAT(nameseparator',')name
FROMtet
WHERE11=1
GROUPBYid
LIMIT0,30
這么實(shí)現(xiàn)就可以將分組查詢結(jié)果的name以,連接起來(lái)了!
實(shí)戰(zhàn)中的代碼
通過(guò)子查詢分組查詢出每個(gè)商品對(duì)應(yīng)的規(guī)格://獲取所選擇的商品的規(guī)格
$sub_sql=db('cart_product_value')
->alias('cpv')
->where('cpv.user_id',$user['id'])
->join("propertyp",'p.id=cpv.property_id')
->join("property_valuepv",'pv.id=cpv.property_value_id')
->field("cpv.cart_id,cpv.product_id,group_concat(pv.nameseparator',')name")
->group('cpv.cart_id')
->buildSql();
查詢結(jié)果:"cart_id":10,
"name":"大號(hào),藍(lán)色"
就這樣,實(shí)現(xiàn)了我們的需求了!
結(jié)尾
一直沒(méi)有太了解這方面的知識(shí),今天遇到這樣的需求,真心覺(jué)得這個(gè)函數(shù)太贊了,超級(jí)給力!寫下本篇文章,方便后面忘記的時(shí)候能回來(lái)查到!
關(guān)鍵詞:
總結(jié)
以上是生活随笔為你收集整理的mysql按字段多条组合_MySQL按分组把字段值组合成一个结果的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 内存升级:电脑焕发新生,速度飙升
- 下一篇: flask创建mysql表_MySQL表