日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

MySQL按指定字符合并以及拆分實例教程

瀏覽:36日期:2023-10-14 12:09:02

前言

按照指定字符進行合并或拆分是經常碰到的場景,MySQL在合并的寫法上比較簡單,但是按指定字符拆分相對比較麻煩一點(也就是要多寫一些字符)。本文將舉例演示如何進行按照指定字符合并及拆分。

1、 合并

MySQL數據庫中按照指定字符合并可以直接用group_concat來實現。

創建測試表

mysql> create table tb_group(id int auto_increment primary key ,col1 varchar(20));Query OK, 0 rows affected (0.01 sec)

插入測試數據

mysql> insert into tb_group(col1) values(’a’),(’c’),(’dddd’),(’ewdw’),(’vxgdh’);;Query OK, 5 rows affected (0.01 sec)Records: 5 Duplicates: 0 Warnings: 0

合并col1字段的內容

默認是按照逗號進行合并的,例如:

mysql> select group_concat(col1) from tb_group; +---------------------+| group_concat(col1) |+---------------------+| a,c,dddd,ewdw,vxgdh |+---------------------+1 row in set (0.01 sec)

指定分隔符合并,例如指定使用 || 符號進行合并

mysql> select group_concat(col1,’||’) from tb_group; +-------------------------------+| group_concat(col1,’||’) |+-------------------------------+| a||,c||,dddd||,ewdw||,vxgdh|| |+-------------------------------+1 row in set (0.00 sec)

注意

默認情況下,合并后的長度不能超過1024,否則結果會被截斷

例如,我再寫個腳本插入一些數據

# 使用shell腳本來實現vim test_insert.sh# 添加如下內容 #!/bin/bash# gjcfor i in {1..1025}do mysql -uroot -p’123456’ --socket=/data/mysql3306/tmp/mysql.sock -e 'insert into testdb.tb_group1(col1)values(’a’) 'done# 運行腳本插入數據 sh test_insert.sh

mysql> select count(*)from tb_group;+----------+| count(*) |+----------+| 1030 |+----------+1 row in set (0.00 sec)

再進行合并

mysql> select group_concat(col1)cols, length(group_concat(col1)) col_len from tb_groupG*************************** 1. row *************************** cols: a,c,dddd,ewdw,vxgdh,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,col_len: 10241 row in set, 2 warnings (0.01 sec)

可以看出,結果中總長度字節只有1024

對于這種情況,實際使用時肯定是不滿足的,如何解決呢?其實此長度與MySQL數據庫的group_concat_max_len參數有直接關系(默認為1024)

mysql> show global variables like ’group_concat_max_len’;+----------------------+-------+| Variable_name | Value |+----------------------+-------+| group_concat_max_len | 1024 |+----------------------+-------+1 row in set (0.08 sec)

那我們調整一下參數看看

/* 修改全局參數,這樣所有的新連接都會生效 */mysql> set global group_concat_max_len=102400;Query OK, 0 rows affected (0.01 sec)/* 修改本會話參數,這樣當前連接不用退出也可以生效 */mysql> set session group_concat_max_len=102400;Query OK, 0 rows affected (0.00 sec)mysql> show global variables like ’group_concat_max_len’;+----------------------+--------+| Variable_name | Value |+----------------------+--------+| group_concat_max_len | 102400 |+----------------------+--------+1 row in set (0.00 sec)mysql> show variables like ’group_concat_max_len’;+----------------------+--------+| Variable_name | Value |+----------------------+--------+| group_concat_max_len | 102400 |+----------------------+--------+1 row in set (0.01 sec)

再合并一下看看

mysql> select group_concat(col1)cols, length(group_concat(col1)) col_len from tb_groupG*************************** 1. row *************************** cols: a,c,dddd,ewdw,vxgdh,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,acol_len: 20691 row in set (0.01 sec)

這樣結果就對了。因此生產環境中 該參數建議調整為合適的大小。

(Tips:Oracle數據庫中可以使用listagg或wm_concat等多種方式實現,也比較簡單,可以自行測試)

2、 拆分

按指定字符拆分字符串,也是比較常見的場景。但是MySQL數據庫中字符串的拆分沒有其他數據庫那么方便(其他數據庫直接有拆分函數),且需要借助mysql庫中的mysql.help_topic表來輔助實現。例子如下:

創建測試表及數據

mysql> create table tb_split(id int primary key auto_increment,col1 varchar(20));Query OK, 0 rows affected (0.01 sec)mysql> insert into tb_split(col1) values(’a,b,c,d’),(’c,a,g,h’);Query OK, 2 rows affected (0.01 sec)Records: 2 Duplicates: 0 Warnings: 0

按照逗號拆分

mysql> SELECT a.id, substring_index(substring_index(a.col1, ’,’, b.help_topic_id + 1), ’,’,- 1) NAME FROM tb_split a JOIN mysql.help_topic b ON b.help_topic_id < (length(a.col1) - length(REPLACE(a.col1, ’,’, ’’)) + 1);+----+------+| id | NAME |+----+------+| 1 | a || 1 | b || 1 | c || 1 | d || 2 | c || 2 | a || 2 | g || 2 | h |+----+------+8 rows in set (0.00 sec)

這樣也就實現了拆分。

按指定字符拆分

如果是其他分隔符的,修改瑞陽的分隔符字段即可。

mysql> insert into tb_split(col1) values(’a|v|f’);Query OK, 1 row affected (0.00 sec)mysql> select * from tb_split;+----+---------+| id | col1 |+----+---------+| 1 | a,b,c,d || 2 | c,a,g,h || 3 | a|v|f |+----+---------+3 rows in set (0.01 sec)mysql> SELECT a.id, substring_index(substring_index(a.col1, ’|’, b.help_topic_id + 1), ’|’,- 1) col_split FROM tb_split a JOIN mysql.help_topic b ON b.help_topic_id < (length(a.col1) - length(REPLACE(a.col1, ’|’, ’’)) + 1) where a.id=3;+----+-----------+| id | col_split |+----+-----------+| 3 | a || 3 | v || 3 | f |+----+-----------+3 rows in set (0.00 sec)

這樣就完成按照指定字符的合并及拆分了。

3、 結語

本文介紹了MySQL常用的合并及拆分方法,對于擅長寫SQL的同學也可以使用其他方式實現,以便解決權限不足(例如拆分時需要使用mysql庫的help_topic表的權限)等情況下的需求。

到此這篇關于MySQL按指定字符合并以及拆分的文章就介紹到這了,更多相關MySQL指定字符合并及拆分內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: MySQL 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩一区二区三区免费| 91精品国产自产在线丝袜啪| 麻豆91精品视频| 蜜臀av国产精品久久久久| 国产欧美一区二区三区精品酒店 | 亚洲欧洲一区二区天堂久久| 欧美精品福利| 国产探花一区二区| 精品视频97| 老牛影视精品| 黄色网一区二区| 国产精品久久久久久久免费软件 | 国产日韩欧美高清免费| 精品一区91| 卡一卡二国产精品| 日本中文字幕一区二区| 青青草国产精品亚洲专区无| 国产精品黄色| 国产一区二区精品福利地址| 鲁大师精品99久久久| 青青国产91久久久久久| 精品久久久网| 亚洲美女久久精品| 久久精品国产精品亚洲毛片| 国产图片一区| 精品一区二区三区四区五区| 成人污污视频| 日韩欧美中文| 欧美福利在线| 亚洲一区日韩| 综合一区二区三区| 中文字幕一区二区精品区| 国产精品777777在线播放| 另类小说一区二区三区| 色一区二区三区| 亚洲欧洲一区| 日韩精品欧美精品| 久久不卡国产精品一区二区| 国产欧美激情| 日韩欧美少妇| 日韩在线电影| 日韩在线视频精品| 日韩在线视频一区二区三区| 精品免费av一区二区三区| 免费一二一二在线视频| 在线看片日韩| 福利欧美精品在线| 老司机精品久久| 国产精品一卡| 亚洲激情中文在线| 精品国产美女a久久9999| 噜噜噜躁狠狠躁狠狠精品视频 | 国产成人精品亚洲日本在线观看| 久久久精品久久久久久96 | 久久精品国产亚洲夜色av网站| 视频一区二区不卡| 国产欧美日韩影院| 亚洲午夜黄色| 国产精品视频一区二区三区综合 | 精品无人区麻豆乱码久久久| 黄色免费成人| 精品国产网站| 日本中文字幕一区二区| 午夜影院一区| 午夜国产精品视频免费体验区| 92国产精品| 久久精品三级| 欧美1区2区3区| 91嫩草精品| 久久一区二区中文字幕| 欧美成人aaa| 日韩av不卡在线观看| 亚洲一卡久久| 国产suv精品一区二区四区视频| 97人人精品| 91精品丝袜国产高跟在线| 91精品啪在线观看国产18| 欧美日韩国产一区二区在线观看| 亚洲天堂资源| 欧美亚洲网站| 免费美女久久99| 中文字幕系列一区| 久久香蕉精品香蕉| 视频一区日韩精品| 一区二区国产在线| 中文无码日韩欧| 99国产精品视频免费观看一公开 | 日韩高清不卡在线| 视频国产精品| 亚洲精品护士| 首页欧美精品中文字幕| 香蕉视频成人在线观看| 欧美中文日韩| 国产一级成人av| 欧美精品福利| 国产白浆在线免费观看| 欧美精品一线| 97人人精品| 成人羞羞视频播放网站| 精品捆绑调教一区二区三区| 亚洲精品一区二区妖精| 中文字幕成人| 精品国产鲁一鲁****| 久久蜜桃精品| 日韩一二三区在线观看| 亚洲精品一级| 久久久久久自在自线| 99热精品久久| 国产香蕉精品| av一区二区高清| 日本午夜免费一区二区| 成人精品中文字幕| 亚洲性视频在线| 成人在线视频免费| 蜜臀av一区二区三区| 麻豆久久一区二区| 亚洲国产不卡| 精品国产不卡| 一区二区三区四区日韩| 日韩福利在线观看| 国产精品大片免费观看| 国产福利91精品一区二区| 久久精品播放| 久久激情av| 91精品99| av资源中文在线天堂| 亚洲精品一级| 九九精品调教| 国产欧美一区二区三区精品观看| 国产一区二区三区不卡av| 日韩国产欧美在线播放| 日韩av免费| 视频一区中文字幕精品| 日韩大片在线播放| 日韩精品免费视频一区二区三区| 欧美香蕉视频| 国产一区 二区| 免费观看久久久4p| 欧美日韩精品一区二区视频| 欧美激情视频一区二区三区在线播放| 中文一区一区三区免费在线观 | 另类欧美日韩国产在线| 亚洲欧洲另类| 亚洲成人三区| 捆绑调教美女网站视频一区| 羞羞答答国产精品www一本| 成年男女免费视频网站不卡| 久久只有精品| 卡一卡二国产精品| 精品视频91| 精品欧美日韩精品| 日韩av自拍| 久久uomeier| 色爱综合av| 先锋亚洲精品| 日韩毛片一区| 久久尤物视频| 日韩精品看片| 亚洲成人一区| 欧美日韩日本国产亚洲在线| 欧美午夜不卡| 亚洲精品福利| 亚洲精品日本| 欧美日韩 国产精品| 久久天堂精品| 丝袜美腿亚洲一区| 奇米亚洲欧美| 久久男人天堂| 亚洲欧美日韩综合国产aⅴ| 日韩精品一区二区三区av| 久久免费精品| 欧美综合二区| 韩国女主播一区二区三区| 亚洲视频电影在线| 九九99久久精品在免费线bt| 97精品一区二区| 一二三区精品| 欧美女激情福利| 欧美一区自拍| 久久一区二区中文字幕| 97久久亚洲| 99国产精品免费视频观看| 日韩av黄色在线| 五月天综合网站| 精品精品久久| 亚洲资源在线| 女主播福利一区| 精品国产乱码久久久久久1区2匹| 三级在线观看一区二区 | 视频一区二区三区中文字幕| 国产精品啊v在线| 欧美激情国产在线| 日本91福利区| 亚洲福利国产| 久久婷婷亚洲| 久久久久久网| 国产一区二区精品福利地址| 欧美日韩99| 亚洲精品日本| 亚洲一区欧美激情|