Разделить строку на массив в MySQL

Чтобы разделить строку на массив в MySQL, вы можете использовать различные методы. Вот несколько подходов:

  1. Использование функции SUBSTRING_INDEX:

    SELECT SUBSTRING_INDEX('your_string', 'delimiter', n) AS split_value

    Замените 'your_string'фактической строкой, которую вы хотите разделить, 'delimiter'нужным разделителем и nпозицией элемента, который вы хотите извлечь.

  2. Использование функции REGEXP_SUBSTR:

    SELECT REGEXP_SUBSTR('your_string', 'pattern', 1, n) AS split_value

    Замените 'your_string'на строку, которую хотите разделить, 'pattern'на шаблон регулярного выражения для разделителя и nс появлением элемента, который вы хотите извлечь.

  3. Использование функции FIND_IN_SET:

    SELECT SUBSTRING_INDEX('your_string', ',', n) AS split_value

    Замените 'your_string'строкой, которую нужно разделить, а nпозицией нужного элемента.

  4. Использование рекурсивного запроса (доступно начиная с MySQL 8.0):

    WITH RECURSIVE cte AS (
     SELECT 'your_string' AS str, 1 AS pos
     UNION ALL
     SELECT
       SUBSTRING_INDEX(SUBSTRING_INDEX(cte.str, 'delimiter', pos + 1), 'delimiter', -1),
       pos + 1
     FROM cte
     WHERE SUBSTRING_INDEX(cte.str, 'delimiter', pos) <> cte.str
    )
    SELECT split_value FROM cte;

    Замените 'your_string'на строку, которую нужно разделить, а 'delimiter'на желаемый разделитель.