欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL分割字符串一行轉多行的實現方法

 更新時間:2023年06月13日 14:44:35   作者:midasism  
這篇文章主要介紹了MySQL分割字符串一行轉多行,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

需求

MySQL中,某個字段通過分隔符保存了多個字符串,如下:

需要將字段中的字符串分成不同的行,如下:

用到的知識

MySQL提供了一系列字符串處理函數
1、left(str, len):從左邊開始截取指定長度
2、right(str, len):從右邊開始截取指定長度
3、substring(str, pos):從第pos個字符開始截取(注意從1開始計數)

  • 當pos為正數:從左往右數第pos個
  • 當pos為負數:從右往左數第pos個

比如pos為-2,字符串為"a,b,c",截取結果為",c"

4、substring(str, pos, len):從第pos個字符開始截取指定長度(注意從1開始計數)
5、substring_index(str, delim, count):根據delim分隔符進行分割,從頭開始截取到第count個分隔符之前
select id, substring_index("a,b,c", ',', 2) from test_split;
截取到第二個分隔符之前

最終實現

實現效果

select 
	b.help_topic_id + 1 as id, 
	substring_index(substring_index(a.name, ',', b.help_topic_id + 1) ,',', -1) as name
from
	test_split a join mysql.help_topic b 
	on 
	b.help_topic_id < LENGTH(a.name) - LENGTH(REPLACE(a.name,',','')) + 1;

一行變成多行,需要借助輔助表,這里選擇mysql.help_topic
mysql.help_topic表的id特點是從0開始遞增,最大為700

1、分割成多少份:LENGTH(a.name) - LENGTH(REPLACE(a.name, ',' , '')) + 1

  • length(‘a,b,c’) - length( replace(‘a,b,c’, ‘,’, ‘’) ) + 1 = 5 - 3 + 1 = 3
  • 原始長度 - 去掉分隔符,之后的長度 = 分隔符數量
  • 分隔符數量 + 1 = 被分割的數量

2、獲取分割之后的每一份字符串
2.1、substring_index(a.name, ',', b.help_topic_id + 1):隨著help_topic_id增加,截取的字符串依次增加,“a”、“a,b”、“a,b,c”……
2.2、substring_index(str, ',' , -1):獲取str按分隔符分割之后的最后一個字符串
substring_index(substring_index(a.name, ',', b.help_topic_id + 1) , ',', -1)由2.1可知,隨著help_topic_id增加,依次獲取"a" “b” “c”……

參考鏈接

http://www.dbjr.com.cn/article/248795.htm

到此這篇關于MySQL分割字符串一行轉多行的文章就介紹到這了,更多相關MySQL分割字符串內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • mysql的binlog三種配置模式小結

    mysql的binlog三種配置模式小結

    本文主要介紹了mysql的binlog三種配置模式小結,主要是binlog_format的值有3個選項,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-07-07
  • 淺析mysql 共享表空間與獨享表空間以及他們之間的轉化

    淺析mysql 共享表空間與獨享表空間以及他們之間的轉化

    本篇文章是對mysql 共享表空間與獨享表空間以及他們之間的轉化進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • MySQL 配置優(yōu)化(多個參數)

    MySQL 配置優(yōu)化(多個參數)

    安裝MySQL后,配置文件my.cnf在 /MySQL安裝目錄/share/mysql目錄中,該目錄中還包含多個配置文件可供參考,有my-large.cnf ,my-huge.cnf, my-medium.cnf,my-small.cnf,分別對應大中小型數據庫應用的配置。win環(huán)境下即存在于MySQL安裝目錄中的.ini文件
    2016-05-05
  • 設置MySQL自動增長從某個指定的數開始方法

    設置MySQL自動增長從某個指定的數開始方法

    下面小編就為大家?guī)硪黄O置MySQL自動增長從某個指定的數開始方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • MYSQL?EXPLAIN結果解讀

    MYSQL?EXPLAIN結果解讀

    本文主要介紹了MySQL查詢中的一些關鍵字,如:SIMPLE,PRIMARY,UNION,DEPENDENTUNION,UNIONRESULT,SUBQUERY,DEPENDENTSUBQUERY,DERIVED,UNCACHEABLESUBQUERY等,文章詳細解析了這些關鍵字的含義和用途
    2024-10-10
  • MySQL使用mysqldump實現數據完全備份

    MySQL使用mysqldump實現數據完全備份

    mysqldump是MySQL自帶的備份工具,可方便實現對MySQL的備份,也可以將指定的庫、表導出為SQL腳本,下面小編就來教大家如何使用mysqldump實現數據完全備份吧
    2023-07-07
  • Druid數據庫連接池的jar包的使用方式

    Druid數據庫連接池的jar包的使用方式

    這篇文章主要介紹了Druid數據庫連接池的jar包的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Linux如何添加mysql系統(tǒng)環(huán)境變量

    Linux如何添加mysql系統(tǒng)環(huán)境變量

    這篇文章主要介紹了Linux如何添加mysql系統(tǒng)環(huán)境變量問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • mysql數據表規(guī)模九千萬條記錄?如何優(yōu)化查詢?

    mysql數據表規(guī)模九千萬條記錄?如何優(yōu)化查詢?

    這里的優(yōu)化維度有四個:硬件配置、參數配置、表結構設計和SQL語句及索引,需要的朋友可以參考下
    2023-12-12
  • 在sql中實現取一行最大值或者最小值

    在sql中實現取一行最大值或者最小值

    這篇文章主要介紹了在sql中實現取一行最大值或者最小值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12

最新評論