mysql 中的split函数_mysql中split函数
在mysql中并没有split函数,需要自己写:
1)获得按指定字符分割的字符串的个数:
DELIMITER $$
DROP FUNCTION IF EXISTS `sims`.`func_get_split_string_total`$$
CREATE DEFINER=`root`@`localhost` FUNCTION `func_get_split_string_total`(
f_string varchar(1000),f_delimiter varchar(5)
) RETURNS int(11)
BEGIN
declare returnInt int(11);
if length(f_delimiter)=2 then
return 1+(length(f_string) - length(replace(f_string,f_delimiter,'')))/2;
else
return 1+(length(f_string) - length(replace(f_string,f_delimiter,'')));
end if;
END$$
DELIMITER ;
例:func_get_split_string_total('abc||def||gh','||') 结果为3
2)得到第i个分割后的字符串。
DELIMITER $$
DROP FUNCTION IF EXISTS `sims`.`func_get_split_string`$$
CREATE DEFINER=`root`@`localhost` FUNCTION `func_get_split_string`(
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$$
DELIMITER ;
例如:func_get_split_string('abc||def||gh','||',2) 为def
3) 需求:A表中的一个字段值为1||2, 在select 时要通过和B字典表的关联得到a,b
CREATE DEFINER=`root`@`localhost` FUNCTION `getDictName`(v_str varchar(100)) RETURNS varchar(100) CHARSET utf8
BEGIN
DECLARE i int(4);
DECLARE dictCode varchar(100);
DECLARE dictName varchar(100);
DECLARE returnStr varchar(100);
set i = 1;
set returnStr = '';
if(v_str is null or length(v_str)=0) then
return returnStr;
else
while i<=func_get_split_string_total(v_str,'||')
do
set dictCode = func_get_split_string(v_str,'||',i);
select names into dictName from sims_dd_dict where code = dictCode;
set returnStr = concat(returnStr,',',dictName); -- 这里要用中文的逗号,否则导出EXCEL的时候会串行,因为程序中是以逗号分隔的
set i = i+1;
end while;
set returnStr = subString(returnStr,2);
return returnStr;
end if;
END$$
1
顶
1
踩
分享到:
2011-08-24 14:44
浏览 22905
分类:数据库
mysql 中的split函数_mysql中split函数相关推荐
- mysql算法函数_mysql中的函数总结
mysql中常用日期时间函数 MySQL服务器中的三种时区设置: ①系统时区---保存在系统变量system_time_zone ②服务器时区---保存在全局系统变量global.time_zone ...
- MySQL中count是什么函数_MySQL中
本篇文章给大家带来的内容是关于mysql大表中count()的用法以及mysql中count()的优化,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助.一个单表中包含有6000w+的数据 ...
- mysql中日期函数_mysql中日期函数ADDDATE()函数用法大全
摘要: 下文讲述mysql数据库中日期函数ADDDATE方法简介说明,如下所示: ADDDATE函数简介说明 ADDDATE函数是DATE_ADD函数的同义词,具有同样的功能, 其作用为:为指定的日期 ...
- mysql group语句可以排序_MySQL中group_concat()函数的排序方法
示例一 group_concat()函数的参数是可以直接使用order by排序,下面通过例子来说明,首先看下面的t1表. 比如,我们要查看每个人的多个分数,将该人对应的多个分数显示在一起,分数要从高 ...
- mysql中正则表达式的用法_Mysql中正则表达式Regexp常见用法
Mysql中Regexp常见用法 模糊匹配,包含特定字符串 # 查找content字段中包含"车友俱乐部"的记录 select * from club_content where ...
- mysql去除select换行符_MySQL中去除字段中的回车符和换行符
问题: 在使用[ load data infile 'D:/node.txt' into table node fields terminated by '\t'; ]语句批量导入如下图所示的aaa. ...
- mysql的explain怎么看_mysql中explain用法详解
如果在select语句前放上关键词explain,mysql将解释它如何处理select,提供有关表如何联接和联接的次序. explain的每个输出行提供一个表的相关信息,并且每个行包括下面的列: 1 ...
- mysql中视图的概念_MySql中的视图的概念及应用
视图的基本概念 视图是从一个或几个基本表(或者视图)导出的表.它与基本表不同,是一个虚表. 数据库只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中.所以基本表中的数据发生变化, ...
- mysql ddl log 源码_MySQL中ddl_log.log初步认识
今天发现测试数据库环境里在凌晨00:00时产生的一个日志文件-ddl_log.log,打开内容几乎是杂乱无章的,只有零散的信息,感觉和表中分区有关系,然后推断可能是因为定时event在00:00时调用 ...
- MySQL中replace主键_Mysql中replace与replace into的用法讲解
Mysql replace与replace into都是经常会用到的功能:replace其实是做了一次update操作,而不是先delete再insert:而replace into其实与insert ...
最新文章
- 什么是伪静态?SEO中如何理解伪静态?
- Sqlite使用技巧集锦
- [转载][总结]函数getopt(),getopt_long及其参数optind
- 215. Kth Largest Element in an Array 数组中的第K个最大元素
- @class、#import
- jquery+bootstrap实现tab切换, 每次切换时都请求数据, 点击提交分别向不同的地址提交数据...
- Samba服务器(一):windows访问samba服务器共享文件的简单实现(图文并茂)
- php中cnum函数,PHP vprintf() 函数
- 邮件作为证据如何提交_电子邮件如何取证、举证?
- 论ul、ol和dl的区别
- 解决算法问题的思路 —— 从问题描述到数学表达
- MongoDB 自动分片 auto sharding
- 操作系统第一章操作系统引论例题及答案
- matlab画空间直线,空间直线x y=z怎么画
- 计算机用户名起什么好,如何随机取名计算机名-如何改计算机用户名
- 浏览器利用框架BeEF测试
- python蜂鸣器天空之城频率_蜂鸣器版天空之城 - osc_lopdl9qi的个人空间 - OSCHINA - 中文开源技术交流社区...
- 2018年中国大数据BI行业分析报告!
- 智能音箱的差评|为什么我要买一堆垃圾回来吃灰!
- ElementUI 整体页面布局
热门文章
- 多媒体计算机对信息处理技术包括哪些,多媒体信息处理技术
- 大话数据结构(个人笔记)
- 大话数据结构 前言
- sao java_SAO Utils
- C++类库Pugixml与rapidxml性能评测
- linux镜像添加驱动,添加raid驱动到initrd.img
- 报Failed to resolve: org.jetbrains.kotlin:kotlin-stdlib-jre7的错误
- 企业应用快速跨向容器时代的正确姿势
- Vijos P1423 最佳路线
- 专升本高等数学考试知识点汇总(一)