国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MySQL 自定義 split 存儲(chǔ)過程

這篇具有很好參考價(jià)值的文章主要介紹了MySQL 自定義 split 存儲(chǔ)過程。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

? ? ? ? MySQL 沒有提供 split 函數(shù),但可以自己建立一個(gè)存儲(chǔ)過程,將具有固定分隔符的字符串轉(zhuǎn)成多行。之所以不能使用自定義函數(shù)實(shí)現(xiàn)此功能,是因?yàn)?MySQL 的自定義函數(shù)自能返回標(biāo)量值,不能返回多行結(jié)果集。

MySQL 8:

drop procedure if exists sp_split;
delimiter //
create procedure sp_split(p_str text, p_delimiter varchar(100))
begin
    select substring_index(substring_index(p_str, p_delimiter, lv), p_delimiter, - 1) a
      from (
	  with recursive tab1(lv) as (
           select 1 lv 
            union all
           select t1.lv + 1 from tab1 t1 
            where lv < (char_length(p_str) - char_length(replace(p_str, p_delimiter, ''))) / (char_length(p_delimiter)) + 1)
      select * from tab1
      ) t1;
end;
//
delimiter ;

MySQL 5:

drop procedure if exists sp_split;
delimiter //
create procedure sp_split(p_str text, p_delimiter varchar(100))
begin
    select substring_index(substring_index(p_str, p_delimiter, help_topic_id + 1), p_delimiter, - 1) a
      from mysql.help_topic  
     where help_topic_id < (char_length(p_str) - char_length(replace(p_str, p_delimiter, ''))) / (char_length(p_delimiter)) + 1;
end;
//
delimiter ;

測(cè)試:

mysql> set @a:='123,456,789';
Query OK, 0 rows affected (0.00 sec)

mysql> call sp_split(@a,',');
+------+
| a    |
+------+
| 123  |
| 456  |
| 789  |
+------+
3 rows in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

mysql> set @a:='中;;English;;混雜;;多字符分隔符';
Query OK, 0 rows affected (0.00 sec)

mysql> call sp_split(@a,';;');
+--------------------+
| a                  |
+--------------------+
| 中                 |
| English            |
| 混雜               |
| 多字符分隔符        |
+--------------------+
4 rows in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

返回指定下標(biāo)的元素:文章來源地址http://www.zghlxwxcb.cn/news/detail-670847.html

set collation_database=utf8mb4_0900_ai_ci;
set collation_server=utf8mb4_0900_ai_ci;

drop function if exists fn_split;

delimiter $$

create function  fn_split ( s text , del char(1) , i int)
returns varchar(1024)
deterministic -- always returns same results for same input parameters
sql security invoker 
begin
    declare n int ;
    -- get max number of items
    set n = length(s) - length(replace(s, del, '')) + 1;
    if i > n then
        return null ;
    else
        return substring_index(substring_index(s, del, i) , del , -1 ) ;
    end if;
end$$

delimiter ;




# 調(diào)用
mysql> set @s:='123|345|789';
Query OK, 0 rows affected (0.00 sec)

mysql> select fn_split(@s,'|',1) i1, fn_split(@s,'|',2) i2, fn_split(@s,'|',3) i3;
+------+------+------+
| i1   | i2   | i3   |
+------+------+------+
| 123  | 345  | 789  |
+------+------+------+
1 row in set (0.00 sec)

到了這里,關(guān)于MySQL 自定義 split 存儲(chǔ)過程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • MySQL數(shù)據(jù)庫中的存儲(chǔ)過程以及存儲(chǔ)函數(shù)練習(xí)

    ?字段名? ? ?? 數(shù)據(jù)類型? ? ? ?主鍵?? ?外鍵?? ?非空 ? 唯一? ? 自增 ?? ???id? ? ? ? ? ? ?INT? ? ? ? ? ? ? ?是 ?? ? 否 ?? ? ?是? ? ? ?是? ? ? ? ? ?否 ?? name?? ?VARCHAR(50)? ?否 ?? ? 否 ?? ? ?是? ? ? ?否? ? ? ? ? ?否 ???glass ? VARCHAR(50)? ? ?否 ??

    2024年02月15日
    瀏覽(22)
  • 使用MySQL存儲(chǔ)過程提高數(shù)據(jù)庫效率和可維護(hù)性

    使用MySQL存儲(chǔ)過程提高數(shù)據(jù)庫效率和可維護(hù)性

    MySQL 存儲(chǔ)過程是一種強(qiáng)大的數(shù)據(jù)庫功能,它允許你在數(shù)據(jù)庫中存儲(chǔ)和執(zhí)行一組SQL語句,類似于編程中的函數(shù)。存儲(chǔ)過程可以大幅提高數(shù)據(jù)庫的性能、安全性和可維護(hù)性。本文將詳細(xì)介紹MySQL存儲(chǔ)過程的使用。 MySQL存儲(chǔ)過程是一組預(yù)編譯的SQL語句,它們以一個(gè)名稱存儲(chǔ)在數(shù)據(jù)庫

    2024年02月08日
    瀏覽(22)
  • Mysql數(shù)據(jù)庫實(shí)驗(yàn)報(bào)告--實(shí)驗(yàn)五 存儲(chǔ)過程和觸發(fā)器

    Mysql數(shù)據(jù)庫實(shí)驗(yàn)報(bào)告--實(shí)驗(yàn)五 存儲(chǔ)過程和觸發(fā)器

    在這個(gè)系列會(huì)更新一些最近老師要求寫的實(shí)驗(yàn)報(bào)告~ 大家盡量對(duì)著我的文章做一個(gè)參考,不要盲目的cv,畢竟這個(gè)對(duì)于我們以后的工作學(xué)習(xí)還是十分重要的。 從這個(gè)實(shí)驗(yàn)開始,就不在cmd命令行里面進(jìn)行mysql數(shù)據(jù)庫的操作,因?yàn)榇a長(zhǎng)度和代碼的復(fù)雜性,需使用 MySQL Workbench: 雙

    2024年02月09日
    瀏覽(101)
  • 【Mysql】X-DOC:Mysql數(shù)據(jù)庫大量數(shù)據(jù)查詢加速(定時(shí)JOB和存儲(chǔ)過程應(yīng)用案例)

    【Mysql】X-DOC:Mysql數(shù)據(jù)庫大量數(shù)據(jù)查詢加速(定時(shí)JOB和存儲(chǔ)過程應(yīng)用案例)

    在某中臺(tái)系統(tǒng)中,設(shè)計(jì)了大量的基礎(chǔ)數(shù)據(jù)(維度數(shù)據(jù)、維度映射關(guān)系等)來支撐業(yè)務(wù)功能,業(yè)務(wù)表中存在大量的維度外鍵關(guān)聯(lián)字段,其優(yōu)點(diǎn)是可以實(shí)現(xiàn)前端的選擇錄入,數(shù)據(jù)校驗(yàn),確保錄入數(shù)據(jù)的準(zhǔn)確性;缺點(diǎn)是在做業(yè)務(wù)報(bào)表時(shí),需要做大量的維度關(guān)聯(lián)(join)操作。 受限于

    2024年02月12日
    瀏覽(23)
  • 【MySQL】探索MySQL存儲(chǔ)過程的魔力,初學(xué)者的數(shù)據(jù)庫編程秘笈(內(nèi)含實(shí)戰(zhàn)SQL腳本)

    【MySQL】探索MySQL存儲(chǔ)過程的魔力,初學(xué)者的數(shù)據(jù)庫編程秘笈(內(nèi)含實(shí)戰(zhàn)SQL腳本)

    ?????作者名稱:DaenCode ??作者簡(jiǎn)介:啥技術(shù)都喜歡搗鼓搗鼓,喜歡分享技術(shù)、經(jīng)驗(yàn)、生活。 ??人生感悟:嘗盡人生百味,方知世間冷暖。 ??所屬專欄:重溫MySQL MySQL存儲(chǔ)過程作為一種服務(wù)器端的 數(shù)據(jù)庫編程方式 ,提供了高效、可重用的方法來執(zhí)行相對(duì)復(fù)雜的數(shù)據(jù)庫操

    2024年02月15日
    瀏覽(95)
  • MySQL數(shù)據(jù)庫——存儲(chǔ)過程-介紹以及基本語法(特點(diǎn)、創(chuàng)建、調(diào)用、查看、刪除、示例)

    MySQL數(shù)據(jù)庫——存儲(chǔ)過程-介紹以及基本語法(特點(diǎn)、創(chuàng)建、調(diào)用、查看、刪除、示例)

    目錄 介紹 特點(diǎn) 基本語法 創(chuàng)建 調(diào)用 查看 刪除? 示例? 存儲(chǔ)過程是 事先經(jīng)過編譯 并 存儲(chǔ)在數(shù)據(jù)庫 中的一段 SQL 語句的 集合 ,調(diào)用存儲(chǔ)過程可以簡(jiǎn)化應(yīng)用開發(fā)人員的很多工作,減少數(shù)據(jù)在數(shù)據(jù)庫和應(yīng)用服務(wù)器之間的傳輸,對(duì)于提高數(shù)據(jù)處理的效率是有好處的。 存儲(chǔ)過程思想

    2024年02月06日
    瀏覽(100)
  • 數(shù)據(jù)庫系統(tǒng)原理及MySQL應(yīng)用教程實(shí)驗(yàn)七存儲(chǔ)過程與函數(shù)的創(chuàng)建管理

    數(shù)據(jù)庫系統(tǒng)原理及MySQL應(yīng)用教程實(shí)驗(yàn)七存儲(chǔ)過程與函數(shù)的創(chuàng)建管理

    1. 理解存儲(chǔ)過程和函數(shù)的概念。 2. 掌握創(chuàng)建存儲(chǔ)過程和函數(shù)的方法。 3. 掌握?qǐng)?zhí)行存儲(chǔ)過程和函數(shù)的方法。 4. 掌握游標(biāo)的定義、使用方法。 1.驗(yàn)證性實(shí)驗(yàn):某超市的食品管理的數(shù)據(jù)庫的Food表對(duì)其操作。 2.設(shè)計(jì)性試驗(yàn):學(xué)校教師管理數(shù)據(jù)庫中的teacherInfo表對(duì)其操作。 三、實(shí)驗(yàn)步

    2024年02月03日
    瀏覽(23)
  • 開源數(shù)據(jù)庫MYSQL DBA運(yùn)維實(shí)戰(zhàn) 第一章 部署

    開源數(shù)據(jù)庫MYSQL DBA運(yùn)維實(shí)戰(zhàn) 第一章 部署

    數(shù)據(jù)庫管理系統(tǒng)? DBMS? ? SQL(RDS關(guān)系型數(shù)據(jù)庫) DBA? 工程師 DDL? 數(shù)據(jù)庫定義語言:數(shù)據(jù)庫,表,視圖,索引,存儲(chǔ)過程,函數(shù) DML? 數(shù)據(jù)庫操縱語言:插入數(shù)據(jù)insert,刪除數(shù)據(jù)delete,更新數(shù)據(jù)update DQL? 數(shù)據(jù)庫查詢語言:查詢數(shù)據(jù)selete DCL? 數(shù)據(jù)庫控制語言:例如控制用戶的訪

    2024年02月21日
    瀏覽(33)
  • 開源數(shù)據(jù)庫MYSQL DBA運(yùn)維實(shí)戰(zhàn) 第四章 集群

    開源數(shù)據(jù)庫MYSQL DBA運(yùn)維實(shí)戰(zhàn) 第四章 集群

    mysql復(fù)制技術(shù) 集群目的 負(fù)載均衡:解決高并發(fā) 高可用HA:服務(wù)可用性 遠(yuǎn)程災(zāi)害:數(shù)據(jù)有效性 圖示 類型 M M-S M-S-S... M-M M-M-S-S 原理圖示 圖示 概念 1.在主庫上把數(shù)據(jù)更改 (DDL DML DCL) 記錄到二進(jìn)制日志 (BinaryLog) 中。 2.備庫/0線程將主庫上的日志復(fù)制到自己的中繼日志 ( Relay Log) 中

    2024年02月21日
    瀏覽(28)
  • 開源數(shù)據(jù)庫MYSQL DBA運(yùn)維實(shí)戰(zhàn) 第三章 備份

    開源數(shù)據(jù)庫MYSQL DBA運(yùn)維實(shí)戰(zhàn) 第三章 備份

    丟/刪 1.數(shù)據(jù)的一致性 2.服務(wù)的可用性 3.1物理備份/冷備份 直接復(fù)制數(shù)據(jù)庫文件,適用于大型數(shù)據(jù)庫環(huán)境,不受存儲(chǔ)引擎的限制,但不能恢復(fù)到不同的mysql tar,cp,scp 拷貝數(shù)據(jù),有點(diǎn)快,缺點(diǎn)服務(wù)停止 3.2邏輯備份/熱備份 備份的是建表,建庫,插入等操作所執(zhí)行SQL語句(DDL,DML,D

    2024年02月21日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包