mysql处理字符串的两个绝招:substring_index,concat
最近老是碰到要处理数据库中字符串的处理,发现用来用去也就是这两个函数:
1、substring_index(str,delim,count)
str:要处理的字符串
delim:分隔符
count:计数
例子:str=
substring_index(str,'.',1)
结果是:www
substring_index(str,'.',2)
结果是:www.google
也就是说,如果count是正数,那么就是从左往右数,第N个分隔符的左边的全部内容
相反,如果是负数,那么就是从右边开始数,第N个分隔符右边的所有内容,如:
substring_index(str,'.',-2)
结果为:google.com
有人会为,如果我呀中间的的google怎么办?
很简单的,两个方向:
1、从右数第二个分隔符的右边全部,再从左数的第一个分隔符的左边:
substring_index(substring_index(str,'.',-2),‘.’,1);
2、你懂得!
2,concat是连接几个字符串,可以多个哦。
concat('wo','lin','xue','bin')
结果就是wolinxuebin
转自:http://www.educity.cn/wenda/401026.html
//mysq进行字符串的分割函数
CREATE PROCEDURE test_SplitString(IN str LONGTEXT,IN delimiter varchar(5))
BEGIN
declare cnt int default 0;
declare i int default 0;
declare item VARCHAR(500);
set cnt = 1 + (length(str) - length(replace(str,delimiter,'')));
DROP TABLE IF EXISTS tmp_split_ss;
create temporary table tmp_split_ss(
val varchar(128) not null
) DEFAULT CHARSET=utf8;
while i < cnt do
set i = i + 1;
set item=reverse(substring_index(reverse(substring_index(str,delimiter,i)),delimiter,1));
SELECT item;
insert into tmp_split_ss(val) values (item);
end while;
END
最近老是碰到要处理数据库中字符串的处理,发现用来用去也就是这两个函数:
1、substring_index(str,delim,count)
str:要处理的字符串
delim:分隔符
count:计数
例子:str=
substring_index(str,'.',1)
结果是:www
substring_index(str,'.',2)
结果是:www.google
也就是说,如果count是正数,那么就是从左往右数,第N个分隔符的左边的全部内容
相反,如果是负数,那么就是从右边开始数,第N个分隔符右边的所有内容,如:
substring_index(str,'.',-2)
结果为:google.com
有人会为,如果我呀中间的的google怎么办?
很简单的,两个方向:
1、从右数第二个分隔符的右边全部,再从左数的第一个分隔符的左边:
substring_index(substring_index(str,'.',-2),‘.’,1);
2、你懂得!
2,concat是连接几个字符串,可以多个哦。
concat('wo','lin','xue','bin')
结果就是wolinxuebin
转自:http://www.educity.cn/wenda/401026.html
//mysq进行字符串的分割函数
CREATE PROCEDURE test_SplitString(IN str LONGTEXT,IN delimiter varchar(5))
BEGIN
declare cnt int default 0;
declare i int default 0;
declare item VARCHAR(500);
set cnt = 1 + (length(str) - length(replace(str,delimiter,'')));
DROP TABLE IF EXISTS tmp_split_ss;
create temporary table tmp_split_ss(
val varchar(128) not null
) DEFAULT CHARSET=utf8;
while i < cnt do
set i = i + 1;
set item=reverse(substring_index(reverse(substring_index(str,delimiter,i)),delimiter,1));
SELECT item;
insert into tmp_split_ss(val) values (item);
end while;
END