mysql正则提取字符串_mysql字符串查找截取与正则表达式的联合应用
/* 判断字符串里的内容是否是数值类型 ****************************************************
is_double
输入参数:
str: 待分析的字符串
返回: 如果是数值类型就返回1,否则返回0
*/
DELIMITER $$
DROP FUNCTION IF EXISTS is_double$$
CREATE FUNCTION is_double(str VARCHAR(128))
RETURNS INT
BEGIN
DECLARE iResult INT DEFAULT 0;
/*NULL字符串或者空字符串*/
IF str IS NULL OR str = ''THEN
RETURN 0;
END IF;
SELECT str REGEXP '^[[:digit:]]+$|^[[:digit:]]+[\\.][[:digit:]]+$' INTO iResult;
IF iResult = 1 THEN
RETURN 1;
ELSE
RETURN 0;
END IF;
END $$
DELIMITER ;
/* 分割字符串 ****************************************************
sp_report_string_get_val
功能:分割特定格式的字符串:'3.4,3.2,3.0,2.6,1.0',忽略空值或者是不合法的值
限制:以逗号分割,分割单元以数字组成
结果:分割之后 字符串变为'3.2,3.0,2.6,1.0'和3.4
输入输出参数:
prstring: 要分割的字符串
输出参数:
rval: 从字符串中取得的数值
rcode: 返回代码:0:表示成功执行;1:表示没有取到值或者取到的不是数值
*/
DROP PROCEDURE IF EXISTS sp_get_val;
CREATE PROCEDURE sp_get_val(
INOUT prstring VARCHAR(128),
OUT rval DOUBLE,
OUT rcode INT UNSIGNED
)
BEGIN
DECLARE _pos INT UNSIGNED DEFAULT 1; /*','的位置*/
DECLARE _str VARCHAR(128) DEFAULT ''; /*存放取出的字符串,之后将值赋给返回变量*/
SET rval = NULL;
SET rcode = 0;
/*
1)先去除空格
*/
SET prstring = REPLACE(prstring, ' ', '');
IF prstring = '' THEN
SET rcode = 1;
ELSE
IF RIGHT(prstring, 1) != ',' THEN
SET prstring = CONCAT(prstring, ',');
END IF;
/*
2)找到第一个','
*/
WHILE rval IS NULL AND prstring != '' DO
SET _pos = LOCATE(',', prstring);
IF _pos = 0 THEN
SET rcode = 1;
ELSE
SET _str = SUBSTRING(prstring, 1, _pos - 1);
IF is_double(_str) THEN
SET rval = _str;
END IF;
SET prstring = SUBSTRING(prstring, _pos + 1);
END IF;
END WHILE;
END IF;
IF rval IS NULL THEN
SET rcode = 1;
END IF;
END;
测试:
CREATE TABLE test_1(a DOUBLE);
DELIMITER $$
DROP PROCEDURE IF EXISTS sp_test_3$$
CREATE PROCEDURE sp_test_3()
BEGIN
DECLARE _str VARCHAR(128) DEFAULT '1,4,3.5,3.7,3.22a, , a, 34.2, 0, .1, 0., ';
DECLARE _i DOUBLE DEFAULT 0;
DECLARE _j INT UNSIGNED DEFAULT 0;
WHILE _str != '' DO
CALL sp_get_val(_str, _i, _j);
IF _j = 0 THEN
INSERT INTO test_1 VALUES(_i);
END IF;
END WHILE;
END$$
DELIMITER ;
执行:
CALL sp_test_3(); SELECT * FROM test_1; TRUNCATE test_1;
mysql正则提取字符串_mysql字符串查找截取与正则表达式的联合应用相关推荐
- mysql 正则截取字符串_mysql字符串查找截取与正则表达式的联合应用 | 学步园
/* 判断字符串里的内容是否是数值类型 **************************************************** is_double 输入参数: str: ...
- linux sed 正则提取字符串,Shell中使用grep、sed正则提取和替换字符串
Linux中使用grep正则提取字符串 echo office365 | grep -P '\d+' -o find . -name "*.txt" | xargs grep -P ...
- mysql中如何操作字符串_mysql 字符串操作
1.LOWER(column|str):将字符串参数值转换为全小写字母后返回 mysql> select lower('SQL Course'); +---------------------+ ...
- c mysql 包含字符串_Mysql字符串字段判断是否包含某个字符串的2种方法
假设有个表: 复制代码 代码如下:CREATE TABLE users(id int(6) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id),user_name VAR ...
- c 配置mysql字符串_mysql字符串属性实例学习
在mysql数据库中: 二进制字符串的比较是通过逐个字节的比较字节数值来进行的. 二进制字符串不和字符集相关联. 非二进制字符串是一个Collation列,他存放包含特定字符集和Collation的文 ...
- linux替换字符串 正则,Linux Shell使用grep、sed 常用正则提取、替换字符串方法
grep常用于文本搜索.通过自定义的模式(pattern),筛选出使用者需要的文本内容.除了有grep,还有egrep和fgrep.其中egrep = grep –E,而fgrep则是不支持正则表达式 ...
- mysql 字段最右匹配_Mysql字符串处理函数详细介绍、总结 -电脑资料
一.简明总结 ASCII(char) 返回字符的ASCII码值 BIT_LENGTH(str) 返回字符串的比特长度 CONCAT(s1,s2-,sn) 将s1,s2-,sn连接成字符串 CONCAT ...
- mysql函数第一次返回字符串_Mysql字符串处理函数详细介绍、总结
一.简明总结 ASCII(char) 返回字符的ASCII码值 BIT_LENGTH(str) 返回字符串的比特长度 CONCAT(s1,s2-,sn) 将s1,sn连接成字符串 CONCAT_W ...
- mysql 格式化函数总结_Mysql字符串处理函数详细介绍、总结
一.简明总结 ASCII(char) 返回字符的ASCII码值 BIT_LENGTH(str) 返回字符串的比特长度 CONCAT(s1,s2-,sn) 将s1,s2-,sn连接成字符串 CONC ...
最新文章
- tableau2020.2版本可视化数据分析 新功能介绍
- php获取访问者ip地址汇总,php获取访问者IP地址汇总_PHP
- C/C++:Winsock网络编程—ping命令的简单实现
- Struts2之数据标签(一)
- 极客大学架构师训练营 听课总结 - 架构视图,设计文档 -- 第二课
- 全球异常高温:虾熟了我也要“熟”了
- matlab无法打开wps的xls文件,WPS无法打开XLS文件怎么办 XLS文件出现异常无法打开怎么处理...
- 登录提示:You are required to change your password immediately (password aged)
- 宽带技术大比拼(转)
- 共享服务器打不开文件csc,csc.exe 无法执行程序的异常
- 微软实习面试经历-2018
- python如何识别特殊字符_python正则表达式--特殊字符
- 高斯旋转热源与双椭球热源_专题文章2.在Marc和abaqus中进行激光焊接仿真的模拟...
- (图文详细)win 10禁用F1到F12热键/win10 把F1到F12多媒体键转变为功能键
- video 视屏播放器详细控制
- PCL_Implicit Shape Model_隐式形状模型 ISM
- APP开发还是应以服务为主
- 为什么程序员工位上总会摆着小黄鸭?
- WPS应用之下拉列表 和 多级下拉列表联动
- MySQL存储引擎与数据的关系_MySQL存储引擎与数据类型
热门文章
- cadshx字体怎么安装_福利 | 关于PPT字体,你应该知道的几件事...字体包福利见文末...
- python秒杀神器苏宁_Python爬虫——实战三:爬取苏宁易购的商品价格
- cmake / cmake --build 如何理解
- 编码 / Base 64
- OS / Linux / epoll 各种事件解析
- 虚拟机上怎么配置mysql数据库_Linux虚拟机下安装配置MySQL
- kafka reassign 限速_RabbitMQ 与 Kafka 的技术差异以及使用注意点
- jpa关联映射(一)
- Pl/sql 如何将oracle的表数据导出成excel文件?
- iOS - app 进行安全加固