当前位置:  数据库>mysql

mysql函数split功能实现

    来源: 互联网  发布时间:2014-10-04

    本文导语:  先设置: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 r...

先设置: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;

    
 
 

您可能感兴趣的文章:

  • mysql中字符串和时间互相转换的方法(自动转换及DATE_FORMAT函数)
  • mysql阻塞在了mysql_real_connect函数调用处
  • 浅谈SQLServer的ISNULL函数与Mysql的IFNULL函数用法详解
  • 求c++ 连接mysql函数?
  • 我想知道几个关于MYSQL接口的C函数
  • MySQL和PHP中substr函数用法
  • MySQL实现类似Oracle中的decode()函数的功能
  • MySQL C API中有没有事务处理的函数啊?
  • mysql_store_result()函数卡住不返回
  • 深入mysql YEAR() MONTH() DAYOFMONTH()日期函数的详解
  • MySQL中的LOCATE和POSITION函数使用方法
  • mysql计算时间差函数
  • mysql求和函数使用示例
  • php mysql转义特殊字符的函数有哪些?
  • mysql截取函数常用方法使用说明
  • mysql建立自定义函数的问题
  • php mysql转义特殊字符函数
  • 浅析MySQL之字符串函数
  • Mysql 数字类型转换函数
  • mysql 查询数据库中的存储过程与函数的语句
  • Mysql存储过程和函数区别介绍
  • mysql中文排序注意事项与实现方法
  • Thinkphp实现MySQL读写分离操作示例
  • linux+free_radius+mysql能否实现多重认证?
  • 使用dreamhost空间实现MYSQL数据库备份方法
  • 如何实现JSP与mysql的连接?
  • 详解MySQL中DROP,TRUNCATE 和DELETE的区别实现mysql从零开始
  • mysql 选择插入数据(包含不存在列)具体实现
  • 请问,如何在windows的环境下,实现jsp和mysql的连接?
  • mysql数据库添加用户及分配权限具体实现
  • mysql实现根据多个字段查找和置顶功能
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • MySQL主从复制配置心跳功能介绍
  • mysql中自增auto_increment功能的相关设置及问题
  • PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
  • 基于php和mysql的简单的dao类实现crud操作功能
  • windows和linux安装mysql后启用日志管理功能的方法
  • jsp连接MySQL操作GIS地图数据实现添加point的功能代码
  • jsp连接MySQL实现插入insert操作功能示例
  • ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
  • 从MySQL复制功能中得到的一举三得实惠分析
  • PHP、MySql、jQuery 实现“顶”与“踩”投票功能
  • jsp操作MySQL实现查询/插入/删除功能示例
  • android+json+php+mysql实现用户反馈功能方法解析
  • 具有负载均衡功能的MySQL服务器集群部署及实现
  • mysql中如何查看最大连接数(max_connections)和修改最大连接数
  • 在 linux下输入"mysql"命令,进入mysql命令行,但出现“Can't connetc to local MySQL server thuough socket /var/lib/mysql/mysql.sock
  • Mysql查询错误:ERROR:no query specified原因
  • MySQL 重装MySQL后, mysql服务无法启动
  • php安装完成后如何添加mysql扩展
  • 为什么用linux安装盘安装了mysql后,启动mysql,提示找不到mysql.sock文件?
  • mysql中查询当前正在运行的SQL语句并找出mysql中运行慢的sql语句
  • 請教,在redhat linux7.2+mysql 中,系統提示mysql已啟動,網頁卻不能訪問mysql?
  • Myeclipse中自带Tomcat的JDBC连接池配置(mysql和mssql)
  • 求解释: useradd -g mysql mysql -d /home/mysql -s /sbin/nologin
  • MySQL Workbench的下载安装与使用教程
  • 在Linux内安装了Mysql,无法进入Mysql.
  • php中内置的mysql数据库连接驱动mysqlnd简介及mysqlnd的配置安装方式
  • 怎样在linux终端输入mysql直接进入mysql?
  • VS2012+MySQL+SilverLight5的MVVM开发模式介绍
  • c++中关于#include <mysql/mysql.h>的问题?
  • MySQL索引基本知识
  • mysql -u root mysql 怎么解释


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3