Мне нужно назначить AAA-BBB-CCC в трех разных переменных MySQL.
Вот неудачный код:
DELIMITER $$ USE `testdepot`$$ DROP PROCEDURE IF EXISTS `sp_test_dlr`$$ CREATE PROCEDURE `sp_test_dlr`(IN id VARCHAR(250),OUT temp1 VARCHAR(50) ,OUT temp2 VARCHAR(50),OUT temp3 VARCHAR(50)) BEGIN DECLARE t1 VARCHAR(100); DECLARE t2 VARCHAR(100); DECLARE t3 VARCHAR(255); SET @t1 = SUBSTRING_INDEX(id, '-', 1); SET @t2 = SUBSTRING_INDEX(id, '-', -1); SET @t3 = SUBSTRING_INDEX(id, '-', -1); SELECT @t1 INTO temp1; SELECT @t2 INTO temp2; SELECT @t3 INTO temp3; END$$ DELIMITER ;
Как я могу выделить строку AAA-BBB-CCC ?
SET @t3 = SUBSTRING_INDEX(SUBSTRING_INDEX(id, '-', -2), '-', 1);
Есть и другие способы сделать это, но я считаю это довольно забавным 🙂