最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL如何從不固定位置提取字符串元素詳解

 更新時(shí)間:2021年03月03日 10:32:45   作者:只是甲  
這篇文章主要給大家介紹了關(guān)于MySQL如何從不固定位置提取字符串元素的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

備注:測(cè)試數(shù)據(jù)庫(kù)版本為MySQL 8.0

測(cè)試數(shù)據(jù):

create table zqs(id int,str varchar(1000));

insert into zqs(id,str) values (1,'【京東】abc【中國(guó)電信】');
insert into zqs(id,str) values (1,'【京東】abc【中國(guó)電信】def');
insert into zqs(id,str) values (1,'****【京東】abc【中國(guó)電信】def');
insert into zqs(id,str) values (1,'****【京東】abc');
insert into zqs(id,str) values (1,'【京東】abc【中國(guó)電信】【中國(guó)聯(lián)通】');

一.需求

經(jīng)常遇到短信類(lèi)似的需求,需要提取短信的標(biāo)記信息,但是可能會(huì)存在多個(gè)短信標(biāo)記

此例假設(shè)最多有3個(gè)標(biāo)簽,需要輸出如下:

mysql> select * from zqs;
±-----±----------------------------------------------------+
| id | str |
±-----±----------------------------------------------------+
| 1 | 【京東】abc【中國(guó)電信】 |
| 1 | 【京東】abc【中國(guó)電信】def |
| 1 | ****【京東】abc【中國(guó)電信】def |
| 1 | ****【京東】abc |
| 1 | 【京東】abc【中國(guó)電信】【中國(guó)聯(lián)通】 |
±-----±----------------------------------------------------+

要求輸出如下:

±-------------±-------------------±-------------------+
| first_val | first_va2 | first_va3 |
±-------------±-------------------±-------------------+
| 【京東】 | 【中國(guó)電信】 | |
| 【京東】 | 【中國(guó)電信】 | |
| 【京東】 | 【中國(guó)電信】 | |
| 【京東】 | | |
| 【京東】 | 【中國(guó)電信】 | 【中國(guó)聯(lián)通】 |
±-------------±-------------------±-------------------+

二.解決方案

Oracle 字符串截取函數(shù) substr和instr配合使用即可,但是MySQL的instr函數(shù)是弱于Oracle的instr函數(shù)。

此時(shí)需要借助MySQL的正則表達(dá)式 regexp_instr函數(shù)以及substr函數(shù)配合

select substr(str,
   regexp_instr(str,'【',1,1),
   regexp_instr(str,'】',1,1) - regexp_instr(str,'【',1,1) + 1 ) first_val, 
  substr(str,
   regexp_instr(str,'【',1,2),
   regexp_instr(str,'】',1,2) - regexp_instr(str,'【',1,2) + 1) first_va2, 
  substr(str,
   regexp_instr(str,'【',1,3),
   regexp_instr(str,'】',1,3) - regexp_instr(str,'【',1,3) + 1) first_va3
 from zqs;

測(cè)試記錄:

mysql> select substr(str,
 ->   regexp_instr(str,'【',1,1),
 ->   regexp_instr(str,'】',1,1) - regexp_instr(str,'【',1,1) + 1 ) first_val,
 ->   substr(str,
 ->   regexp_instr(str,'【',1,2),
 ->   regexp_instr(str,'】',1,2) - regexp_instr(str,'【',1,2) + 1) first_va2,
 ->   substr(str,
 ->   regexp_instr(str,'【',1,3),
 ->   regexp_instr(str,'】',1,3) - regexp_instr(str,'【',1,3) + 1) first_va3
 -> from zqs;
+--------------+--------------------+--------------------+
| first_val | first_va2   | first_va3   |
+--------------+--------------------+--------------------+
| 【京東】  | 【中國(guó)電信】  |     |
| 【京東】  | 【中國(guó)電信】  |     |
| 【京東】  | 【中國(guó)電信】  |     |
| 【京東】  |     |     |
| 【京東】  | 【中國(guó)電信】  | 【中國(guó)聯(lián)通】  |
+--------------+--------------------+--------------------+
5 rows in set (0.00 sec)

總結(jié)

到此這篇關(guān)于MySQL如何從不固定位置提取字符串元素的文章就介紹到這了,更多相關(guān)MySQL提取字符串元素內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL筆記之視圖的使用詳解

    MySQL筆記之視圖的使用詳解

    使用視圖的大部分情況是為了保障數(shù)據(jù)安全性,提高查詢效率
    2013-05-05
  • 簡(jiǎn)單了解添加mysql索引的3條原則

    簡(jiǎn)單了解添加mysql索引的3條原則

    這篇文章主要介紹了簡(jiǎn)單了解添加mysql索引的3條原則,如果表中查詢的列有一個(gè)索引,MySQL能快速到達(dá)一個(gè)位置去搜尋到數(shù)據(jù)文件的中間,沒(méi)有必要看所有數(shù)據(jù),需要的朋友可以參考下
    2019-06-06
  • mybatis-plus分頁(yè)傳入?yún)?shù)后sql where條件沒(méi)有l(wèi)imit分頁(yè)信息操作

    mybatis-plus分頁(yè)傳入?yún)?shù)后sql where條件沒(méi)有l(wèi)imit分頁(yè)信息操作

    這篇文章主要介紹了mybatis-plus分頁(yè)傳入?yún)?shù)后sql where條件沒(méi)有l(wèi)imit分頁(yè)信息操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • 使用mysqldump導(dǎo)出導(dǎo)入mysql表結(jié)構(gòu)或者數(shù)據(jù)

    使用mysqldump導(dǎo)出導(dǎo)入mysql表結(jié)構(gòu)或者數(shù)據(jù)

    這篇文章主要介紹了使用mysqldump導(dǎo)出導(dǎo)入mysql表結(jié)構(gòu)或者數(shù)據(jù)的相關(guān)資料,mysqldump是MySQL數(shù)據(jù)庫(kù)備份工具,用于導(dǎo)出數(shù)據(jù)和表結(jié)構(gòu),可以使用命令行工具運(yùn)行該工具,并指定數(shù)據(jù)庫(kù)和表的名稱,導(dǎo)出的數(shù)據(jù)可以保存為SQL文件,需要的朋友可以參考下
    2024-12-12
  • MySQL5.7 如何通過(guò)邏輯備份遷移到GreatSQL及注意事項(xiàng)

    MySQL5.7 如何通過(guò)邏輯備份遷移到GreatSQL及注意事項(xiàng)

    在將數(shù)據(jù)庫(kù)從MySQL 5.7遷移到GreatSQL8.0.32時(shí),由于數(shù)據(jù)量較小且關(guān)注安全性,決定使用mysqldump執(zhí)行邏輯備份,并將數(shù)據(jù)導(dǎo)入GreatSQL,這篇文章主要介紹了MySQL5.7 通過(guò)邏輯備份遷移到GreatSQL注意事項(xiàng),需要的朋友可以參考下
    2024-06-06
  • sql語(yǔ)句示例之case?when作為where條件

    sql語(yǔ)句示例之case?when作為where條件

    這篇文章主要給大家介紹了關(guān)于sql語(yǔ)句示例之case?when作為where條件的相關(guān)資料,在SQL語(yǔ)句中CASE WHEN子句是根據(jù)條件表達(dá)式的結(jié)果來(lái)執(zhí)行不同的邏輯操作,它使用在WHERE子句中,以根據(jù)特定的條件在查詢結(jié)果中過(guò)濾數(shù)據(jù),需要的朋友可以參考下
    2023-08-08
  • Centos7.3下mysql5.7.18安裝并修改初始密碼的方法

    Centos7.3下mysql5.7.18安裝并修改初始密碼的方法

    這篇文章主要為大家詳細(xì)介紹了Centos7.3下mysql5.7.18安裝并修改初始密碼的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 全面詳解MySQL單行函數(shù)分析

    全面詳解MySQL單行函數(shù)分析

    MySQL常見(jiàn)的函數(shù)分為單行函數(shù)和分組函數(shù),單行函數(shù)包含字符函數(shù)、數(shù)學(xué)函數(shù)、日期函數(shù)、流程控制函數(shù)等,下面就詳細(xì)的來(lái)介紹一下MySQL單行函數(shù)
    2023-10-10
  • mysql中mvcc的具體使用

    mysql中mvcc的具體使用

    MVCC多版本并發(fā)控制是一種并發(fā)控制的方法,一般在數(shù)據(jù)庫(kù)管理系統(tǒng)中,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的并發(fā)訪問(wèn),本文主要介紹了mysql中mvcc的具體使用,感興趣的可以了解一下
    2024-09-09
  • MySQL中聯(lián)合主鍵的操作方式

    MySQL中聯(lián)合主鍵的操作方式

    MySQL聯(lián)合主鍵操作包括創(chuàng)建、新增和修改,創(chuàng)建時(shí)在表定義中使用PRIMARY KEY關(guān)鍵字指定多個(gè)字段,新增和修改時(shí),分別使用ALTER TABLE語(yǔ)句刪除舊主鍵并添加新主鍵
    2024-12-12

最新評(píng)論

龙州县| 阿拉善右旗| 建德市| 涟源市| 琼结县| 富民县| 平武县| 鲁山县| 岱山县| 陵川县| 大埔区| 惠来县| 德阳市| 延寿县| 广宗县| 宜宾市| 海林市| 湾仔区| 涿州市| 库尔勒市| 宝山区| 麦盖提县| 津南区| 双桥区| 肇源县| 增城市| 黎城县| 钟祥市| 历史| 朔州市| 荔波县| 永春县| 巧家县| 黑龙江省| 措美县| 伊宁县| 新余市| 宾川县| 马公市| 河津市| 东乌珠穆沁旗|