MySQL中實現分割字串的方法

2021-09-03 05:56:47 字數 2420 閱讀 1884

比如現在有一字串:1,2,44,5,666,29232

要把它按照逗號分割成: 1

2 44

5666

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.

return1+

(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'';

setresult

=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

notnull);

while i < cnt

doset 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分割字串 mysql分割字串

專案有通過一批id去過濾結果的需求,因為這個id是從其他平台拉下來的excel,為了避免加引號逗號的麻煩,在mysql儲存過程裡面拼接。在此做個記錄。很多地方用得上。1.通過某個字元,分割字串的函式。輸入分別為f string 待分割字串 f delimiter 分割字元 f order 取的字串的...

MySQL中實現分割字串的方法

比如現在有一字串 1,2,44,5,666,29232 要把它按照逗號分割成 1 2 44 5 666 29232 而且還要求它的總數。這個我以前寫過。不過今天規範一下。1 具體函式 sql code delimiter create definer root function func get s...

MySQL中實現分割字串的方法

比如現在有一字串 1,2,44,5,666,29232 要把它按照逗號分割成 1 2 44 5666 29232 而且還要求它的總數。這個我以前寫過。不過今天規範一下。1 具體函式 sql code delimiter create definer root function func get sp...