Для того, чтобы выбрать подстроку, зная ее порядковый номер по отношению к разделительным символам, нам нужно написать запрос из двух вложенных функций:
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('AAA:BBB:CCC:DDD', ':', 4),':','-1') FROM mytable;
Здесь переменной величиной является цифра 4 как индекс строки (считается от 1, не от нуля!), сама строка (вместо нее можно, конечно, пользовать вывод другой функции или имя столбца) и разделитель (в нашем случае это двоеточие - ":")
Например, выше данный запрос выведет:
DDD
А если цифры 4 поменять на, скажем, 3:
CCC
Заметим, что -1 в первой функции НЕ МЕНЯЕТСЯ! Т.е. он таким и остается.
ЗЫ. Минус метода в том, что если мы выбираем подстроку под номером, который не существует, то MySQL все равно вернет последнюю найденную строку (не пустую строку и не NULL). Пример: выбираем подстроку номер 5 из строки "first:second:third" с разделитилями ":". Но пятой подстроки не существует - последняя - третья. MySQL нам все равно вернет "third".
Комментарии
Оставить комментарий
Базы данных - MySql (Maria DB)
Термины: Базы данных - MySql (Maria DB)