Хотите разбить строку в mysql, используя SUBSTRING_INDEX

Мне нужно назначить 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); 

Есть и другие способы сделать это, но я считаю это довольно забавным 🙂