mysql字符串分割函数

由于工作需要需要处理一些以逗号分隔的字符串,每次都要现做很是麻烦,网上找了很多都没有现成的,好吧,自己动手写一个好了

 1 CREATE DEFINER = `harri`@`%` FUNCTION `substr_for_str`(`num` int, `str` varchar(5000))
 2  RETURNS varchar(100)
 3 BEGIN
 4     /*函数功能: 把带逗号的字符串分割取出
 5         参数: num 要取出的字符串的索引值, 以0开始
 6                     str 以逗号分割的字符串
 7         扩展: 将逗号替换成其他符合,即可完成不同分隔符拆分字符串,亦可以把分隔符作为参数
 8   */
 9 SET @substr_for_str = #Routine body goes here...
10
11 SUBSTRING(
12         SUBSTRING_INDEX(str, ‘,‘, num + 1),
13         CASE num
14     WHEN 0 THEN
15         CHAR_LENGTH(
16             SUBSTRING_INDEX(str, ‘,‘, num)
17         ) + 1
18     ELSE
19         CHAR_LENGTH(
20             SUBSTRING_INDEX(str, ‘,‘, num)
21         ) + 2
22     END,
23     CASE num
24 WHEN 0 THEN
25     CHAR_LENGTH(
26         SUBSTRING_INDEX(str, ‘,‘, num + 1)
27     ) - CHAR_LENGTH(
28         SUBSTRING_INDEX(str, ‘,‘, num)
29     )
30 ELSE
31     CHAR_LENGTH(
32         SUBSTRING_INDEX(str, ‘,‘, num + 1)
33     ) - CHAR_LENGTH(
34         SUBSTRING_INDEX(str, ‘,‘, num)
35     ) - 1
36 END
37     );
38
39
40     RETURN @substr_for_str;
41 END;

测试:

mysql> SELECT str_for_substr(3,‘one,two,three,four,five,six,seven‘) as ‘value‘;
+-------+
| value |
+-------+
| four |
+-------+
1 row in set

时间: 2024-12-18 01:28:45

mysql字符串分割函数的相关文章

MySQL 字符串 分割 多列

mysql如何进行以,分割的字符串的拆分 - 我有一个梦想 - CSDN博客https://blog.csdn.net/u012009613/article/details/52770567 mysql字符串分割函数(行转列) - 小草青青 - 博客园https://www.cnblogs.com/jiangwenju/p/4886066.html mysql中根据某个字符为间隔进行分列(有举例)_百度知道https://zhidao.baidu.com/question/284013200.h

php 字符串分割函数split

说明 array split    ( string $pattern   , string $string   [, int $limit  ] ) 本函数返回一个字符串数组,每个单元为   string 经区分大小写的正则表达式   pattern 作为边界分割出的子串.如果设定了   limit,则返回的数组最多包含   limit 个单元,而其中最后一个单元包含了   string 中剩余的所有部分.如果出错,则   split() 返回 FALSE. Example #1 split(

oracle | 字符串分割函数

/** * 字符串分割函数. * @param P_STR 待分割的字符串 * @param 分隔符 * @return 自定义table类型TY_STR_SPLIT. * 使用方法 select column_value from table(fn_split('1,2',',')) * @Author: xDer */ CREATE OR REPLACE FUNCTION FN_SPLIT(P_STR IN VARCHAR2, P_DELIMITER IN VARCHAR2) RETURN

JavaScript中字符串分割函数split用法实例

这篇文章主要介绍了JavaScript中字符串分割函数split用法,实例分析了javascript中split函数操作字符串的技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了JavaScript中字符串分割函数split用法.分享给大家供大家参考.具体如下: 先来看下面这段代码: <script type="text/javascript"> var str="How are you doing today?" document.write

Split字符串分割函数

非常非常常用的一个函数Split字符串分割函数. Dim myTest myTest = "aaa/bbb/ccc/ddd/eee/fff/ggg" Dim arrTest arrTest = Split(myTest , "/" , -1 , 1) Dim i For i = 0 to ubound(arrTest) print "arrTest(" & i & ") = " & arrTest(i)

hive函数 -- split 字符串分割函数

hive字符串分割函数 split(str, regex) - Splits str around occurances that match regexTime taken: 0.769 seconds, Fetched: 1 row(s) 返回值为一个数组 a.基本用法: 例1: split('a,b,c,d',',') 得到的结果: ["a","b","c","d"] b.截取字符串中的某个值: 当然,我们也可以指定取结

C++的字符串分割函数

原文: C++的字符串没有分割函数,因此需要自己写方便使用.而受到开发工具的影响,有很多用起来比较麻烦啦,下面这个比较不错奥. 用STL进行字符串的分割 涉及到string类的两个函数find和substr:1.find函数原型:size_t find ( const string& str, size_t pos = 0 ) const;功能:查找子字符串第一次出现的位置.参数说明:str为子字符串,pos为初始查找位置.返回值:找到的话返回第一次出现的位置,否则返回string::npos

字符串分割函数StringTokenizer与strtok,strsep的比较

字符串分割在我们在开发过程中经常遇到的问题.根据一个标记串,将输入的字符串分割成多个子串.实际编码当中,我们发现使用不同的函数得到的结果也会有区别. 为了方便比较,我们定义一个统一的输入输出比较方式: vector<string> parsetoken(const string &str, const string& delim); 输入源字符串str,分割标记串为delim,分割的子串保存到vector<string>中. 我们分别使用内部的StringToken

字符串分割函数--拆分成多行(转)

--字符串拆分成行 declare @str varchar(8000)  set @str = 'a1,b1,c2,d1,e3,f5'  --,换成 union all select set @str = 'select  name='''+replace(@str,',',''' union all select ''')+''''  exec(@str) /*name  ----  a1 b1 c2 d1 e3 f5 */ --字符串分割函数--拆分成多行 create function