MySQL для обновления атрибута XML
При загрузке данных некоторые атрибуты XML отображаются неправильно, и сейчас я пытаюсь это исправить, но я борюсь с обработкой MySQL этого столбца XML.
Я хочу исправить атрибуты XML (не значения) для всех вхождений поля (с атрибутом 'tag = "520"') с подполем (с атрибутом 'code = "3"'). Запрос ниже возвращает 0 затронутых строк, 1 найденных строк. Любые подсказки о том, как этого добиться.
UPDATE biblioitems
SET marcxml = UpdateXML(marcxml,'datafield[@tag="520"]/subfield[@code="3"]',
'datafield[@tag="520"][@ind1="3"]/subfield[@code="a"]')
WHERE biblionumber = '220405';
XML фрагмент включен для ясности:
Оригинальный фрагмент
<datafield tag="300" ind1=" " ind2=" ">
<subfield code="f">article</subfield>
</datafield>
<datafield tag="520" ind1=" " ind2=" ">
<subfield code="3">A description of something here</subfield>
</datafield>
<datafield tag="655" ind1=" " ind2=" ">
<subfield code="a"></subfield>
</datafield>
Что я хочу получить в результате:
<datafield tag="300" ind1=" " ind2=" ">
<subfield code="f">article</subfield>
</datafield>
<datafield tag="520" ind1="3" ind2=" ">
<subfield code="a">A description of something here</subfield>
</datafield>
<datafield tag="655" ind1=" " ind2=" ">
<subfield code="a"></subfield>
</datafield>
Не удалось понять, как выделить изменение в блоке кода (это атрибут ind1 в поле данных tag = "520" и связанные с ним атрибуты подполя)