У меня есть задача разбора простой XML-форматированной строки в хранимой процедуре MySQL. XML выглядит так (только для целей тестирования):Анализ XML-строки в MySQL
<parent>
<child>Example 1</child>
<child>Example 2</child>
</parent>
Что мне нужно для выполнения MySQL, так это создать набор результатов по одной строке в каждом матче. Мой сохраненный код прок выглядит следующим образом:
DECLARE xmlDoc TEXT;
SET xmlDoc = '<parent><child>Example 1</child><child>Example 2</child></parent>';
SELECT ExtractValue(xmlDoc, '//child');
Что это делает, однако, это сцепить все матчи, производя «Пример 1 Пример 2». Это, кстати, документированное, но совершенно бесполезное поведение.
Что я могу сделать, чтобы вернуть спички в строках без необходимости подсчитывать совпадения и обрабатывать их один за другим? Возможно ли это с MySQL?
Спасибо всем!
Это работает довольно хорошо. Благодарю. –
Используя этот запрос, я получаю только две строки. Я что-то упускаю? – reticent
@reticent: как было сказано ранее, 'MySQL' не имеет функции генерации ряда. Подзапрос возвращает только 2 строки, которые вы получаете. Добавьте несколько строк в 'vars' (или замените его« SELECT »из таблицы достаточно большим). – Quassnoi