使用 Mysql 內(nèi)置函數(shù) group_concat() 鏈接查詢的字段值

在使用 Mysql 數(shù)據(jù)庫查詢數(shù)據(jù)時,有時需要將查詢的同一字段的值拼接起來,減少代碼的處理,group_concat() 函數(shù)就可以滿足我們的需要。

mysql> select `id`, `category_title` from `categories`;
+----+----------------+
| id | category_title |
+----+----------------+
|  9 | Golang         |
|  5 | Http           |
|  1 | Javascript     |
|  3 | Linux          |
| 10 | Mac            |
|  6 | Mysql          |
|  7 | Nginx          |
|  2 | PHP            |
|  8 | Redis          |
|  4 | Tools          |
+----+----------------+

例如,上面的數(shù)據(jù)表有 category_title 字段,我們在查詢時,需要將該字段使用逗號拼接查詢,這時需要使用 group_concat( 需要拼接的字段 ) 函數(shù)。

mysql> select group_concat(`category_title`) as title from `categories`;
+--------------------------------------------------------------+
| title                                                        |
+--------------------------------------------------------------+
| Golang,Http,Javascript,Linux,Mac,Mysql,Nginx,PHP,Redis,Tools |
+--------------------------------------------------------------+
1 row in set (0.00 sec)

該函數(shù)默認使用逗號將字符進行拼接,我們也可以傳遞參數(shù)使用指定的字符來拼接, group_concat( 需要拼接的字段 separator '拼接字符' )

mysql> select group_concat(`category_title` separator '|' ) as title from `categories`;
+--------------------------------------------------------------+
| title                                                        |
+--------------------------------------------------------------+
| Golang|Http|Javascript|Linux|Mac|Mysql|Nginx|PHP|Redis|Tools |
+--------------------------------------------------------------+
1 row in set (0.00 sec)

需要注意的是 Mysql 默認長度1024,如果字符太長會被截掉,想要完整數(shù)據(jù)可以在 Mysql 配置文件內(nèi)增加 group_concat_max_len = '自己需要的長度即可'。

文章同步發(fā)布在我的個人博客中,傳送門Hesunfly Blog

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容