好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > MySQL按指定字符合并以及拆分實例教程

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

熱門標(biāo)簽:鄭州網(wǎng)絡(luò)外呼系統(tǒng)價錢 南寧外呼系統(tǒng)招商 博樂電銷機器人 電話機器人是電腦呼號嗎 怎么更改高德地圖標(biāo)注 機器人打電銷電話 云南大數(shù)據(jù)外呼系統(tǒng) 上海市三維地圖標(biāo)注 400電話到哪辦理優(yōu)惠

前言

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

1、 合并

MySQL數(shù)據(jù)庫中按照指定字符合并可以直接用group_concat來實現(xiàn)。

創(chuàng)建測試表

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

插入測試數(shù)據(jù)

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字段的內(nèi)容

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

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,否則結(jié)果會被截斷

例如,我再寫個腳本插入一些數(shù)據(jù)

# 使用shell腳本來實現(xiàn)
vim test_insert.sh
# 添加如下內(nèi)容 

#!/bin/bash
# gjc

for 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ù)據(jù) 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_group\G
*************************** 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: 1024
1 row in set, 2 warnings (0.01 sec)

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

對于這種情況,實際使用時肯定是不滿足的,如何解決呢?其實此長度與MySQL數(shù)據(jù)庫的group_concat_max_len參數(shù)有直接關(guān)系(默認為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)

那我們調(diào)整一下參數(shù)看看

/* 修改全局參數(shù),這樣所有的新連接都會生效 */
mysql> set global group_concat_max_len=102400;
Query OK, 0 rows affected (0.01 sec)

/* 修改本會話參數(shù),這樣當(dāng)前連接不用退出也可以生效 */
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_group\G
*************************** 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,a
col_len: 2069
1 row in set (0.01 sec)

這樣結(jié)果就對了。因此生產(chǎn)環(huán)境中 該參數(shù)建議調(diào)整為合適的大小。

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

2、 拆分

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

創(chuàng)建測試表及數(shù)據(jù)

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)

這樣也就實現(xiàn)了拆分。

按指定字符拆分

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

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、 結(jié)語

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

到此這篇關(guān)于MySQL按指定字符合并以及拆分的文章就介紹到這了,更多相關(guān)MySQL指定字符合并及拆分內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • MYSQL數(shù)據(jù)庫數(shù)據(jù)拆分之分庫分表總結(jié)
  • 使用perl實現(xiàn)拆分?jǐn)?shù)據(jù)表(mysql)并遷移數(shù)據(jù)實例
  • MySQL截取和拆分字符串函數(shù)用法示例
  • MySQL 常見數(shù)據(jù)拆分辦法
  • MySQL 表的垂直拆分和水平拆分

標(biāo)簽:恩施 澳門 秦皇島 定西 杭州 白銀 寧夏 益陽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL按指定字符合并以及拆分實例教程》,本文關(guān)鍵詞  MySQL,按,指定,字符,合并,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MySQL按指定字符合并以及拆分實例教程》相關(guān)的同類信息!
  • 本頁收集關(guān)于MySQL按指定字符合并以及拆分實例教程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 亚洲AV成人无码精品直播60后 | 亚洲AV一区二区波多野结衣| 国产乱╳╳Av| 操你啦免费视频| 大桥未久强制中出| 亚洲精品人人| 亚洲秘?无码一区二区三区蜜桃 | 午夜免费小视频| 亚洲综合色秘密影院秘密影院| 处破大全视频| 亚洲~首页~原始| 御花园娇嫩嗯啊h| 三年片高清免费观看完整版| 抖.濦免费视频| 又粗又长又硬太爽了视频快来 | 好大?老师好爽?快点深| 中文字幕三级一区二区| 99久久99久久精品免费看子| 别揉我胸?啊?嗯…高潮| 2021年理论片在线观看理论片| 榴莲视频在线免费观看| 他掀开裙子舌头进去添| 国产入口秘?91福利姬| 亚洲精品一区又黄又爽又粗又猛| 乱人伦视频69| 艳妇被三十公分交换呻吟| 国产精品视频全国免费观看| 8090新视觉理论电视剧| 亚洲一区免费看| 国产成人性毛片| 好硬好湿好爽再深一点app| 久久99久久99精品免费看小说| 国产理乱片91PORn久久久| 新婚娇嫩紧窄粗大| 免费的毛片视频| 国产精品一级香蕉一区| 黑人太大太粗太硬太深了受不了了| 成人午夜免费无码福利软件| 操操影院| 男的操女的视频| 欧美福利视频网站|