Чтобы разделить строку по разделителю в MySQL, вы можете использовать несколько методов:
-
Функция SUBSTRING_INDEX:
Функция SUBSTRING_INDEX позволяет извлечь подстроку из строки до или после указанного разделителя. Например, чтобы разделить строку по разделителю-запятой и получить первую часть, вы можете использовать следующий запрос:SELECT SUBSTRING_INDEX('your,string,here', ',', 1);В результате будет возвращено слово «ваш».
-
Функция FIND_IN_SET:
Функция FIND_IN_SET ищет значение в списке, разделенном запятыми, и возвращает позицию значения. Используя эту функцию, вы можете разделить строку на несколько частей на основе разделителя. Вот пример:SELECT SUBSTRING_INDEX('your,string,here', ',', 1) AS part1, SUBSTRING_INDEX(SUBSTRING_INDEX('your,string,here', ',', 2), ',', -1) AS part2, SUBSTRING_INDEX('your,string,here', ',', -1) AS part3;При этом строка «ваш,строка,здесь» будет разделена на три части: «ваш», «строка» и «здесь».
-
Функция REGEXP_SUBSTR:
Начиная с MySQL 8.0, вы можете использовать функцию REGEXP_SUBSTR для извлечения подстрок на основе шаблона регулярного выражения. Например, чтобы разделить строку запятой и получить все части, вы можете использовать следующий запрос:SELECT REGEXP_SUBSTR('your,string,here', '[^,]+', 1, seq) AS parts FROM ( SELECT 1 + seq.seq_id AS seq FROM ( SELECT 0 AS seq_id UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 ) AS seq ) AS seq WHERE REGEXP_SUBSTR('your,string,here', '[^,]+', 1, seq) IS NOT NULL;При этом каждая часть строки будет возвращена как отдельная строка.