`
xitonga
  • 浏览: 593961 次
文章分类
社区版块
存档分类
最新评论

MySQL存储过程-->长字符串扯分

 
阅读更多

DELIMITER $$ -- 分隔符
USE`test`$$ --
DROPPROCEDURE IF EXISTS `pro_split`$$ -- 如果已经存在则删除proc

CREATEPROCEDURE `test`.`pro_split` (varchar rids)
BEGIN
DECLAREpo INT DEFAULT 0; -- 定义一个位置点
DECLARErid VARCHAR(20) DEFAULT ""; -- 定义一个rid变量
DECLARErid_tmp VARCHAR(20) DEFAULT "";
SET po= LOCATE(",",rids); -- 找到第一个,的位置点
SET rid=LEFT(po-1,rids); -- 截取出第一个rid
SETrid_tmp=SUBSTR(rids,po+1); -- 设置剩下还没有处理的rids长字符串


WHILEpo >0 DO -- 开始循环处理rids长字符串
INSERTINTO b_tmp SELECT pid,rid; --把截取出来的rid放入临时表中
SET po =LOCATE(",",rid_tmp); -- 获取未处理中的长字符串的,的第一个位置点
SET rid=LEFT(po-1,rid_tmp); --取出每一个循环中截取出来的rid
SETrid_tmp=SUBSTR(rid_tmp,po+1); -- 重新设置未处理的长字符串。
ENDWHILE ;


END$$




DELIMITER;




PS:这个是默认的字符串扯分规则是“,”,如果想变成灵活一些的,可以设置一个in 参数,在调用proc的时候代入即可。




分享到:
评论

相关推荐

    mysql将字符串分割成多列值

    利用mysql中提供的所有函数,组成的一个存储过程。此存储过程主要是将传入的字符串分割为多个值,单个列。

    Mysql通过存储过程分割字符串为数组

    分割字符串为数组需要用到 三个mysql 的函数 : REVERSE(str) 返回颠倒字符顺序的字符串str。 SUBSTRING_INDEX(str,delim,count) 返回从字符串str的第count个出现的分隔符delim之后的子串。如果count是正数,返回...

    ADO.Net助手V1.10---一个获取ADO.Net连接字符串,测试SQL命令的辅助软件

    ADO.Net助手是一个获取ADO.Net连接字符串(支持ADO.Net助手是一个获取ADO.Net连接字符串(支持Access,SQLite,SQLServer,MySQL和ORACLE),测试SQL命令,存储过程和数据库之间互导数据的辅助软件。ADO.Net助手还可以...

    字符串转化成表名

    在建存储过程实现某一目的时,传入的参数会遇到是列名,表名的字符串,在这种情况下,应该怎样通过参数获得你要的值呢?

    MySQL中字符串函数详细介绍

    符串或串(String)是由零个或多个字符组成的有限序列。一般记为 s=’a1a2•••an'... 下面我们来看看MySQL中的字符串函数 假如结果的长度大于 max_allowed_packet 系统变量的最大值时,字符串值函数的返回值为NULL。 对

    MYSQL

    <br>6.14 怎样使MySQL安全以对抗解密高手(cracker) <br>7 MySQL 语言参考 <br>7.1 文字:怎样写字符串和数字 <br>7.1.1 字符串 <br>7.1.2 数字 <br>7.1.3 十六进制值 <br>7.1.4 NULL值 <br>7.1.5 数据库,表,索引,...

    MySQL中文参考手册.chm

    <br/>6.13 存取拒绝(Access Denied)错误的原因 <br/>6.14 怎样使MySQL安全以对抗解密高手(cracker) <br/>7 MySQL 语言参考<br/>7.1 文字:怎样写字符串和数字<br/>7.1.1 字符串 <br/>7.1.2 数字 <br/>7.1.3 十六进制...

    mysql5.1中文手册

    replace:字符串替换实用工具<br>8.15. mysql_zap:杀死符合某一模式的进程<br>9. 语言结构<br>9.1. 文字值<br>9.1.1. 字符串<br>9.1.2. 数值<br>9.1.3. 十六进制值<br>9.1.4. 布尔值<br>9.1.5. 位字段值<br>9.1.6....

    MySQL之动态字符串处理

    MySQL中,常常会看到一些关于动态字符串的处理,列如:DYNAMIC_STRING。  为了记录动态字符串的实际长度,缓冲区的大长度,以及每次字符串需要调整时,及时分配新的内存,以及调整长度。MySQL使用了DYNAMIC_STRING...

    基于SSM框架+mysql,采用分布式架构的移动电子商城项目源码+项目说明.zip

    json格式的字符串<-------------->JSONArray<------------------->EbCart 3.添加购物车之前要做什么事情? (1)添加购物车之前要对当前要买的最小销售单元的库存做判断,看是否足够当前购买的数量 (2) a...

    mysql的日期和时间函数

    expr 是一个字符串;它可以以一个 “-” 领头表示一个负的间隔值。type 是一个关键词,它标志着表达式以何格式被解释。 下表显示 type 和 expr 参数是如何关联的:  type 值 expr 期望的格式 SECOND ...

    Mysql字符串字段判断是否包含某个字符串的2种方法

    假设有个表: 代码如下: CREATE TABLE users(id int(6) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id),user_name VARCHAR(20) NOT NULL,emails VARCHAR(50) NOT NULL); 初始化表,并添加些记录。...

    新版 MySQL DBA 高级视频 基于MySQL 5.7 MySQL 8.0版本.rar

    │ 7_MySQL存储引擎.mp4 │ 8_MySQL第三范式设计讲解.mp4 │ 9_MySQL数据库设计工具.mp4 │ ├─新版MySQL DBA综合实战班 第06天 │ 1_课堂作业讲解.mp4 │ 2_InnoDB内核之事务和多版本控制.mp4 │ 3_InnoDB底层...

    mysql面试题-mysql经典面试题目-数据库的基本概念-SQL语法-事务处理-索引优化-性能调优-mysql-面试题目

    什么是数据库?什么是关系数据库管理系统(RDBMS)? 什么是SQL?列举一些常见的SQL命令。 什么是索引?为什么使用索引可以提高查询性能?...MySQL如何支持事务处理?...什么是数据库连接字符串?它的格式和参数有哪些

    MySQL 5.1参考手册

    8.14. replace:字符串替换实用工具 8.15. mysql_zap:杀死符合某一模式的进程 9. 语言结构 9.1. 文字值 9.1.1. 字符串 9.1.2. 数值 9.1.3. 十六进制值 9.1.4. 布尔值 9.1.5. 位字段值 9.1.6. NULL值 9.2. 数据库、...

    MYSQL培训经典教程(共两部分) 1/2

    MYSQL高级特性 81<br>4.1 集合函数 82<br>4.1.1 行列计数 82<br>4.1.2统计字段值的数目 82<br>4.1.3 计算字段的平均值 83<br>4.1.4 计算字段值的和 84<br>4.1.5 计算字段值的极值 84<br>4.1.6 总结 86<br>4.2 操作...

    MySQL中字符串索引对update的影响分析

    本文分析了MySQL中字符串索引对update的影响。分享给大家供大家参考,具体如下: 对某一个类型为varchar的字段添加前缀索引后,基于该子段的条件查询时间基本大幅下降;但对于update操作,所耗的时间却急剧上升,...

    2021年MySQL高级教程视频.rar

    25.MySQL高级SQL技巧数字函数与字符串函数.avi └26.MySQL高级SQL技巧日期函数与聚合函数.mp4 ├第二天视频 01.MySQL高级今日内容.mp4 02.MySQL高级体系结构.avi 03.MySQL高级存储引擎概述.avi 04.MySQL高级存储引擎...

    python学习总结day04.txt

    Day03回顾 ... 1、text -> 字符串 2、encoding -> res.encoding = "utf-8" 3、content -> 字节流 4、status_code -> 服务器响应码 2、数据持久化存储 1、MySQL流程 1、db = pymysql.connect("localh

Global site tag (gtag.js) - Google Analytics