比如现在有一字符串:1,2,44,5,666,29232
要把它按照逗号分割成:
1
2
44
5
666
29232
而且还要求它的总数。这个我以前写过。不过今天规范一下。
1、具体函数
SQL code
DELIMITER $$
CREATE DEFINER=`root`@`%` FUNCTION `func_get_split_string_total`(
f_string varchar(1000),f_delimiter varchar(5)
) RETURNS int(11)
BEGIN
-- Get the total number of given string.
return 1+(length(f_string) - length(replace(f_string,f_delimiter,'')));
END$$
DELIMITER ;
SQL code
DELIMITER $$
CREATE DEFINER=`root`@`%` FUNCTION `func_get_split_string`(
f_string varchar(1000),f_delimiter varchar(5),f_order int) RETURNS varchar(255) CHARSET utf8
BEGIN
-- Get the separated number of given string.
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 ;
测试的存储过程:
DELIMITER $$
CREATE PROCEDURE `sp_print_result`(
IN f_string varchar(1000),IN f_delimiter varchar(5)
)
BEGIN
-- Get the separated string.
declare cnt int default 0;
declare i int default 0;
set cnt = func_get_split_string_total(f_string,f_delimiter);
drop table if exists tmp_print;
create temporary table tmp_print (num int not null);
while i < cnt
do
set i = i + 1;
insert into tmp_print(num) values (func_get_split_string(f_string,f_delimiter,i));
end while;
select * from tmp_print;
END$$
DELIMITER ;
2、来做一下测试
mysql> call sp_print_result('1,2,44,5,666,29232',',');
+-------+
| num |
+-------+
| 1 |
| 2 |
| 44 |
| 5 |
| 666 |
| 29232 |
+-------+
6 rows in set (0.01 sec)
Query OK, 0 rows affected (0.01 sec)
分享到:
相关推荐
在MySQL数据库中,有时我们需要处理存储在单一字段内的多个值,这时就涉及到字符串的分割操作。这个场景在处理如CSV格式的数据或者存储一串相关但独立的信息时尤为常见。本篇将详细介绍MySQL中的字符串分割技术及其...
这个函数在分割字符串为数组时,用于倒序排列字符串以便于后续操作。 2. **SUBSTRING_INDEX() 函数**: - `SUBSTRING_INDEX(str, delim, count)` 也是一个重要的字符串函数,它根据分隔符`delim`将字符串`str`拆分...
第三种方法通过将目标字符作为分隔符,使用`String.Split`方法分割字符串,然后通过结果数组的长度减一得到目标字符的出现次数。实现代码如下: ```csharp int c3 = str.Split(new char[] {'A'}).Length - 1; ``` ...
你可以使用这个函数来分割字符串,例如`SELECT * FROM dbo.f_split('dfkd,dfdkdf,dfdkf,dffjk', ',')`,这将返回一个包含所有分隔元素的表。 其次,如果你只需要知道一个字符串中有多少个分隔符,可以创建一个函数...
标题和描述所提及的问题是关于如何在Mapper.xml文件中处理字符串形式的参数,这些参数由逗号分隔,并在`AND`语句中拼接`OR`子句来实现动态查询。这种场景在处理用户多选过滤条件时非常常见,比如在一个搜索框中,...
虽然本文主要关注Java中的字符串截取方法,但提供的文件中还提到了MySQL数据库中的字符串截取方法。这里也简单介绍一下MySQL中常用的字符串截取函数: - **LEFT(str, length)**:返回从字符串左侧开始的前`length`...
MySQL提供了丰富的字符串处理函数,如 `CONCAT` 用于连接字符串,`LENGTH` 或 `CHAR_LENGTH` 用于计算字符串长度,以及 `REPLACE` 用于替换字符串中的特定部分等。这些函数在实际开发中非常实用,了解并熟练掌握它们...
- **SUBSTRING函数**(也称为SUBSTR函数)用于从给定的字符串中提取一个子字符串。它允许我们指定从哪个位置开始提取以及提取多少个字符。 **语法结构**: ```sql SUBSTRING(str, pos, len) ``` - `str`是要处理的...
- `mysql_real_escape_string` 和 `mysql_escape_string`:这两个函数用于转义SQL字符串中的特殊字符。`mysql_real_escape_string`还会判断字符集,而`mysql_escape_string`不会。 - `base64_encode` 和 `base64_...
这可能涉及字符串分割、正则表达式匹配或者JSON/XML解析等,具体取决于数据格式。例如,如果数据是以逗号分隔值(CSV)格式,可以使用`String.split()`方法来拆分。 4. **MySQL数据库操作** 在Java中,我们可以使用...
正则表达式是一种强大的文本匹配工具,可以用来分割、替换或匹配字符串中的特定模式。不过,大多数SQL方言并不支持复杂的正则表达式操作,所以你可能需要借助服务器端的其他编程语言,如Python或Java,来辅助处理。 ...
在.NET中,有多种方法可以实现字符串替换,但其中只有少数几种方法支持忽略大小写。下面我们将详细介绍这些方法,并对其进行比较和分析。 1. String.Replace()方法 String.Replace()方法是最常用的字符串替换方法...
在MySQL中,可以使用内置的`SUBSTRING_INDEX()`函数来分割字符串。这个函数根据指定的分隔符返回一个字符串的一部分,可以是起始部分或结束部分。例如,如果你有一个包含逗号分隔的数字串,你可以使用它来获取每个...
通常,我们用`SUBSTRING_INDEX()`或`REGEXP_REPLACE()`结合`FIND_IN_SET()`来分割字符串。这些函数在处理字符串数据时非常有用,特别是在需要将一个长字符串拆分为多个部分时。 首先,`SUBSTRING_INDEX()`函数是...
如果数组长度等于1,说明目标字符串并不在主字符串中,因为整个目标字符串被当作一个整体来分割,没有产生额外的数组元素。 以下是checkStr()函数的代码实现: ```php function checkStr($str, $target) { $tmpArr...
在处理TXT文件内容时,可能会涉及到`String`类的方法,如`split()`用于分割字符串,`trim()`去除空白,`replace()`替换特定字符等。此外,如果数据格式复杂,还可能使用正则表达式(`Pattern`和`Matcher`类)进行...
`implode`用于将数组元素组合为一个字符串,`explode`是用指定字符分割字符串成数组,`join`与`implode`功能相同。 2. `strrev`函数用于实现字符串的翻转,将字符串的字符顺序反转。 3. PHP的模板框架中,`Smarty`,...
4.5.1 在字符串中查找字符串:strstr()、strchr()、strrchr()和stristr() 4.5.2 查找子字符串的位置:strpos()、strrpos() 4.5.3 替换子字符串:str_replace()、substr_replace() 4.6 正则表达式的介绍 4.6.1 ...