MySQL將多條數(shù)據(jù)合并成一條的完整示例
數(shù)據(jù)庫中存的是多條數(shù)據(jù),展示的時候需要合并成一條
數(shù)據(jù)表存儲形式如下圖

以type分組,type相同的算一條,且保留image和link的所有數(shù)據(jù),用groupBy只保留一條數(shù)據(jù)
解決方案:用GROUP_CONCAT
完整語法如下
group_concat([DISTINCT] 要連接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
SELECT * FROM testgroup

表結(jié)構(gòu)與數(shù)據(jù)如上
現(xiàn)在的需求就是每個id為一行 在前臺每行顯示該id所有分?jǐn)?shù)
group_concat 上場?。?!
SELECT id,GROUP_CONCAT(score) FROM testgroup GROUP BY id

可以看到 根據(jù)id 分成了三行 并且分?jǐn)?shù)默認(rèn)用 逗號 分割 但是有每個id有重復(fù)數(shù)據(jù) 接下來去重
SELECT id,GROUP_CONCAT(DISTINCT score) FROM testgroup GROUP BY id

排序
SELECT id,GROUP_CONCAT(score ORDER BY score DESC) FROM testgroup GROUP BY id

最后可以設(shè)置分隔符
SELECT id,GROUP_CONCAT(score SEPARATOR ';') FROM testgroup GROUP BY id

二、多字段如何處理
select id,name,GROUP_CONCAT(CONCAT_WS(',',type,typename) SEPARATOR ',') typelinks from demo GROUP BY id,name;三、Laravel GROUP_CONCAT使用方法
DB::raw('GROUP_CONCAT(pp.sku SEPARATOR ",") sku')具體代碼如下
$list = $this->ServiceModel->query()->where($where)
->groupBy('type')
->orderBy('update_time','desc')
->paginate($this->ServiceModel->pageSize, [
'id',DB::raw('GROUP_CONCAT(CONCAT_WS(",",image,link) SEPARATOR ";") content'),
'type','modified_user_id','status','create_time','update_time'
], "page", $page);
$total = $list->total();
$res = $list->items();每條數(shù)據(jù)以";"分割,每個字段以“,”分割
總結(jié)
到此這篇關(guān)于MySQL將多條數(shù)據(jù)合并成一條的文章就介紹到這了,更多相關(guān)MySQL多條數(shù)據(jù)合并一條內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mysql too many open connections問題解決方法
這篇文章主要介紹了mysql too many open connections問題解決方法,其實是max_connections配置問題導(dǎo)致,它必須在[mysqld]下面才會生效,需要的朋友可以參考下2014-05-05
Mysql之索引的數(shù)據(jù)結(jié)構(gòu)詳解
索引是存儲引擎用于快速找到數(shù)據(jù)記錄的一種數(shù)據(jù)結(jié)構(gòu),類似于教科書的目錄部分,在MySQL中,索引可以加速數(shù)據(jù)查找,減少磁盤I/O的次數(shù),提高查詢速率,但是,創(chuàng)建和維護索引需要耗費時間,并且索引需要占磁盤空間,在InnoDB中,索引的實現(xiàn)基于B+樹結(jié)構(gòu)2024-12-12
mysql實現(xiàn)多表關(guān)聯(lián)統(tǒng)計(子查詢統(tǒng)計)示例
這篇文章主要介紹了mysql實現(xiàn)多表關(guān)聯(lián)統(tǒng)計(子查詢統(tǒng)計),結(jié)合具體案例形式分析了mysql多表關(guān)聯(lián)統(tǒng)計的原理、實現(xiàn)方法及相關(guān)操作注意事項,需要的朋友可以參考下2019-10-10
MySQL9.0(innovation)安裝及配置詳細(xì)教程
MySQL對于開發(fā)者來說,不但體積小,速度也很可觀,最最重要的是開源,所以非常受開發(fā)者們的歡迎,這篇文章主要給大家介紹了關(guān)于MySQL9.0(innovation)安裝及配置的詳細(xì)教程,需要的朋友可以參考下2024-08-08
navicat 8 創(chuàng)建數(shù)據(jù)庫與創(chuàng)建用戶分配權(quán)限圖文方法
navicat是一款不錯的圖形化管理mysql的工具,大家一般都是用phpmyadmin或直接命令行操作,對于不是很熟悉命令的朋友,就可以使用navicat這個工具了,方便操作。2011-04-04

