mysql函数split功能实现

所属分类: 数据库 / Mysql 阅读数: 1111
收藏 0 赞 0 分享
先设置:SET GLOBAL log_bin_trust_function_creators = 1;

1. 函数func_splitStringTotal:将字符串按指定方式分割,并计算单元总数

复制代码 代码如下:

DELIMITER $$
CREATE FUNCTION `func_get_splitStringTotal`(
f_string varchar(10000),f_delimiter varchar(50)
) RETURNS int(11)
BEGIN
return 1+(length(f_string) - length(replace(f_string,f_delimiter,'')));
END$$
DELIMITER ;


2.函数func_splitString:将字符串按指定方式分割,获取指定位置的数

复制代码 代码如下:

DELIMITER $$
DROP function IF EXISTS `func_splitString` $$
CREATE FUNCTION `func_splitString`
( f_string varchar(1000),f_delimiter varchar(5),f_order int)
RETURNS varchar(255) CHARSET utf8
BEGIN

declare result varchar(255) default '';
set result = reverse(substring_index(reverse(substring_index(f_string,f_delimiter,f_order)),f_delimiter,1));
return result;
END$$
SELECT func_splitString('1,2,3,4,5,6,7',',',1);


3.过程splitString 将字符串分割,并放到临时表tmp_split 里面

复制代码 代码如下:

DELIMITER $$
DROP PROCEDURE IF EXISTS `splitString` $$
CREATE PROCEDURE `splitString`
(IN f_string varchar(1000),IN f_delimiter varchar(5))

BEGIN
declare cnt int default 0;
declare i int default 0;
set cnt = func_split_TotalLength(f_string,f_delimiter);
DROP TABLE IF EXISTS `tmp_split`;
create temporary table `tmp_split` (`val_` varchar(128) not null) DEFAULT CHARSET=utf8;

while i < cnt
do
set i = i + 1;
insert into tmp_split(`val_`) values (func_split(f_string,f_delimiter,i));
end while;
END$$
call splitString('a,s,d,f,g,h,j',',');
SELECT * from tmp_split;
更多精彩内容其他人还在看

Sphinx/MySQL 协议支持与SphinxQL应用实例

Sphinx/MySQL 协议支持与SphinxQL应用例子,供大家学习参考
收藏 0 赞 0 分享

mysql中Load Data记录换行问题的解决方法

有关mysql中Load Data记录换行的问题的解决方法, 需要的朋友可以参考下
收藏 0 赞 0 分享

mysql中使用sphinx搜索子域名需注意的问题

比如搜索jb51.net会把www.jb51.net、jb51.net、sc.jb51.net等都搜索出来
收藏 0 赞 0 分享

sphinxql如何得到结果数及show meta的详细说明

想用sphinxql只得到结果数。跟mysql里的count(*)一样
收藏 0 赞 0 分享

MySql报错Table mysql.plugin doesn’t exist的解决方法

一般产生原因是手工更改my.ini的数据库文件存放地址导致的,大家可以参考下下面的方法
收藏 0 赞 0 分享

MYSQL之插入极限分析

MYSQL之插入极限分析,需要的朋友可以参考下
收藏 0 赞 0 分享

MySQL内存表的特性与使用介绍

临时表和内存表都可以人工创建,但临时表更多的作用是系统自己创建后,组织数据以提升性能,如子查询,临时表在多个连接之间不能共享。这里只讨论内存表
收藏 0 赞 0 分享

MySQL 主键与索引的联系与区别分析

这篇文章主要介绍MySQL 主键与索引的联系与区别,使用mysql的朋友可以看下
收藏 0 赞 0 分享

mysql性能优化脚本mysqltuner.pl使用介绍

无意中发现了,major哥们开发的一个性能分析脚本,很有意思,可以通过这个脚本学学他的思想
收藏 0 赞 0 分享

MySQL查询优化:连接查询排序浅谈

不知道有没有人碰到过这样恶心的问题:两张表连接查询并limit,SQL效率很高,但是加上order by以后,语句的执行时间变的巨长,效率巨低。下边就来看看这个问题需要如何解决
收藏 0 赞 0 分享
查看更多