Я новичок в хранимой процедуре. Как разделить строку с помощью '/' и сохранить ее в переменной?

Я пробовал следующие шаги:

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

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

Но bp2 всегда такой же, как bp1. Я не знаю, что здесь не так.

0
sarath s rajendran 26 Июл 2017 в 17:23

2 ответа

Я исправил это, создав разделение функций (строка, разделитель, нет). Это мой код:

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 = split ('5x112,30 / 5x120,45', '/', 1);

Bp2 = split ('5x112,30 / 5x120,45', '/', 2);

1
sarath s rajendran 26 Июл 2017 в 18:25

Это потому, что bm = 5x112.30 в нем нет символа /

0
Ahmed Taha 26 Июл 2017 в 17:34
Но как мне проверить bp2? в некоторых случаях bm будет иметь такие значения, как 5x112.30 / 5x120.56.
 – 
sarath s rajendran
26 Июл 2017 в 17:40
Вы хотите bp1 = 5x112.30 и bp2 = 5x120.45 ?
 – 
Ahmed Taha
26 Июл 2017 в 18:03