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

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)常遇到短信類似的需求,需要提取短信的標(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里面的子查詢實(shí)例

    MySQL里面的子查詢實(shí)例

    最近學(xué)習(xí)php+mysql執(zhí)行操作,發(fā)現(xiàn)了這一篇實(shí)例代碼
    2008-04-04
  • MySQL數(shù)據(jù)庫(kù)基礎(chǔ)命令大全(收藏)

    MySQL數(shù)據(jù)庫(kù)基礎(chǔ)命令大全(收藏)

    今天小編給大家整理一下mysql數(shù)據(jù)庫(kù)的基礎(chǔ)命令,特此分享到腳本之家平臺(tái),供大家參考下
    2016-12-12
  • mysql8.0.21安裝教程圖文詳解

    mysql8.0.21安裝教程圖文詳解

    這篇文章主要介紹了mysql8.0.21安裝教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • mysql存儲(chǔ)過(guò)程中的異常處理解析

    mysql存儲(chǔ)過(guò)程中的異常處理解析

    這篇文章主要為大家詳細(xì)介紹了mysql存儲(chǔ)過(guò)程中的異常處理,感興趣的小伙伴們可以參考一下
    2016-09-09
  • 線上MySQL的自增id用盡怎么辦

    線上MySQL的自增id用盡怎么辦

    MySQL的自增id都定義了初始值,然后不斷加步長(zhǎng)。雖然自然數(shù)沒(méi)有上限,但定義了表示這個(gè)數(shù)的字節(jié)長(zhǎng)度,那自增id用完,會(huì)怎么樣?本文就來(lái)介紹一下
    2021-08-08
  • 從云數(shù)據(jù)遷移服務(wù)看MySQL大表抽取模式的原理解析

    從云數(shù)據(jù)遷移服務(wù)看MySQL大表抽取模式的原理解析

    這篇文章主要介紹了從云數(shù)據(jù)遷移服務(wù)看MySQL大表抽取模式的原理解析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • MySQL DML語(yǔ)句整理匯總

    MySQL DML語(yǔ)句整理匯總

    這篇文章主要介紹了MySQL DML語(yǔ)句整理匯總,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • MySql數(shù)據(jù)庫(kù)自動(dòng)遞增值問(wèn)題

    MySql數(shù)據(jù)庫(kù)自動(dòng)遞增值問(wèn)題

    這篇文章主要介紹了MySql數(shù)據(jù)庫(kù)自動(dòng)遞增值問(wèn)題的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-07-07
  • MySQL server has gone away的問(wèn)題解決

    MySQL server has gone away的問(wèn)題解決

    本文主要介紹了MySQL server has gone away的問(wèn)題解決,意思就是指client和MySQL server之間的鏈接斷開(kāi)了,下面就來(lái)介紹一下幾種原因及其解決方法,感興趣的可以了解一下
    2024-07-07
  • MACOS中忘記MySQL root密碼的解決方案

    MACOS中忘記MySQL root密碼的解決方案

    這篇文章主要向大家講述的是在MAC系統(tǒng)中MySQL重設(shè)root密碼的實(shí)際操作步驟,在實(shí)際操作中忘記MySQL root密碼時(shí)常會(huì)發(fā)生的,下面就是本教程的詳細(xì)內(nèi)容介紹。
    2017-03-03

最新評(píng)論