如何在mysql存储过程中用'/'拆分字符串?

时间:2017-07-26 14:23:11

标签: mysql stored-procedures

我是存储过程的新手。如何用'/'拆分字符串并将其存储到变量?

我尝试了以下步骤:

bm = 5x112.30 / 5x120.45 ;

SET bp1 = SUBSTRING_INDEX(bm, '/', 1);
SET bp2 = SUBSTRING_INDEX(bm, '/', 2);

但是bp2总是与bp1相同。我不知道这里有什么不对。

2 个答案:

答案 0 :(得分:1)

我通过创建一个函数split(string,delimiter,no)来修复它。这是我的代码:

DELIMITER $$

CREATE FUNCTION split( str VARCHAR(500), delchar VARCHAR(2), x INT )
RETURNS VARCHAR(500)
BEGIN
RETURN SUBSTR(SUBSTRING_INDEX(str, delchar, x),
LENGTH(SUBSTRING_INDEX(str, delchar, x-1))+IF(x > 1, 2, 1));
END$$

DELIMITER ;

bp1 =拆分(' 5x112.30 / 5x120.45',' /',1);

bp2 =拆分(' 5x112.30 / 5x120.45',' /',2);

答案 1 :(得分:0)

那是因为bm = 5x112.30它没有/个字符