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

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

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

瀏覽:34日期: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久久,三上悠亚国产精品一区二区三区
青青国产精品| 国产精品一级在线观看| 尤物在线精品| 岛国av在线网站| 你懂的网址国产 欧美| 日韩一区二区久久| 欧美高清一区| 99国产精品自拍| 国产真实久久| 久久99伊人| 亚洲综合中文| 天堂av一区| 久久国际精品| 国产中文字幕一区二区三区| 久久精品二区亚洲w码| 国产高清亚洲| 久久久久久婷| 国产韩日影视精品| 欧美另类专区| 亚洲美女久久| 日韩不卡一区二区三区| 国产欧美日本| 国产伦久视频在线观看| 免费不卡中文字幕在线| 老牛影视一区二区三区| 日韩一区中文| 国产成人77亚洲精品www| 欧美精品黄色| 99在线精品免费视频九九视| 国产精品久久久久久久久久10秀| 国产videos久久| 午夜免费一区| 久久99性xxx老妇胖精品| 日产精品一区| 日韩一区精品视频| 国产精品主播| 激情综合网五月| 国产调教一区二区三区| 国产黄大片在线观看| 午夜久久tv| 久久精品国产99| 天堂成人国产精品一区| 久久久久免费| 国产日韩在线观看视频| 欧美日韩国产在线观看网站| 欧美日韩夜夜| 欧美日韩日本国产亚洲在线| 麻豆传媒一区二区三区| 中文精品电影| 国产专区一区| 国内在线观看一区二区三区| 在线精品视频一区| 久久久久中文| 国语对白精品一区二区| 日本一不卡视频| 亚洲精品888| 亚洲香蕉网站| 韩国久久久久久| 久久影视三级福利片| 91精品国产经典在线观看| 夜夜嗨一区二区| 在线一区视频观看| caoporn视频在线| 久久天堂影院| 狠狠久久伊人中文字幕| 国产午夜精品一区在线观看| 亚洲ab电影| 日本va欧美va欧美va精品| 蜜臀91精品一区二区三区| 影音先锋久久| 久久av在线| 免费在线观看视频一区| av亚洲免费| 国产精品日韩久久久| 久久久777| 激情久久中文字幕| aa国产精品| 亚洲69av| 国产精品xxx在线观看| 国产精品综合色区在线观看| 久久久国产亚洲精品| 日韩成人在线看| 国产剧情一区| 国产成人精品三级高清久久91 | 成人久久一区| 99riav1国产精品视频| 一级欧美视频| 国产精品久久久久久久久免费高清| 国产欧美激情| 成人国产精选| 男人天堂欧美日韩| 国产精品2023| 欧美/亚洲一区| 欧美午夜不卡| 亚洲日韩视频| 色在线视频观看| 丝袜美腿一区二区三区| 久久狠狠久久| 五月精品视频| 国产精品对白| 日本成人中文字幕在线视频| 老色鬼精品视频在线观看播放| 久久精品国产99久久| 亚洲最新av| 偷拍精品精品一区二区三区| 久久亚洲欧美| 国产suv精品一区二区四区视频| 91久久视频| 国产亚洲欧美日韩精品一区二区三区 | 日韩精品视频中文字幕| 日韩在线免费| 欧美在线看片| 亚洲精品成人| 水蜜桃久久夜色精品一区| 欧美一级专区| 日韩在线观看不卡| 国产精品nxnn| 亚洲精品一二三**| 免费欧美一区| 久久久久国产精品一区三寸| 亚洲永久精品唐人导航网址| 午夜免费一区| 久久久久久久久丰满| 麻豆91在线播放| 日韩一区二区三免费高清在线观看| 国产精品美女久久久| 婷婷丁香综合| 不卡在线一区| 国产亚洲在线观看| 中文亚洲欧美| 99精品电影| 国产精品av一区二区| 亚洲综合在线电影| 国产一区二区三区精品在线观看| 日韩国产在线一| 99视频一区| 亚洲欧美日韩国产| 美女精品在线观看| 免播放器亚洲一区| 蜜桃一区二区三区在线| 日韩欧美激情| 国产精品地址| 九九九精品视频| 久久精品国产免费| 日本欧美不卡| 亚洲国产不卡| 免费观看日韩电影| 三级久久三级久久久| 国产欧美视频在线| 国产一区二区三区四区大秀 | 麻豆高清免费国产一区| 成人日韩av| 久久高清精品| 自拍自偷一区二区三区| 日本不卡视频在线观看| 日韩不卡在线观看日韩不卡视频 | 精品国产一区二区三区av片| 精品视频一二| 在线一区av| 亚洲一级淫片| 日韩在线免费| 国产欧美精品| 精品一区在线| 里番精品3d一二三区| 免费在线观看一区二区三区| 色综合狠狠操| 日韩国产高清在线| 91九色精品| av在线最新| 国产精品v亚洲精品v日韩精品| 欧美搞黄网站| 亚洲黄色免费看| 国产精品成人自拍| 日韩福利视频一区| 在线亚洲成人| 久久久久国产一区二区| 粉嫩av一区二区三区四区五区 | 日本不卡一区二区三区| 亚洲一级大片| 欧美日韩国产免费观看视频| 久久国产尿小便嘘嘘| 久久亚洲欧美| 在线亚洲人成| 91精品精品| 色爱综合av| 精品日韩毛片| 国产成人精品三级高清久久91 | 免费日韩视频| 欧美91在线| 午夜在线一区| 久久wwww| 国产精品一区二区三区www| 亚洲高清不卡| 国产欧美高清视频在线| 久久国产欧美日韩精品| 亚洲免费成人| 欧美精品高清| 午夜精品福利影院| 日韩视频一区| 91亚洲国产|