В MariaDB, UPDATEXML() е вградена функция, която замества единична част от даден фрагмент от XML маркиране с нов XML фрагмент, след което връща актуализирания XML.
Синтаксис
Синтаксисът е така:
UPDATEXML(xml_target, xpath_expr, new_xml) Къде:
xml_targetе XML маркирането, което съдържа XML фрагмента, който искате да актуализиратеxpath_exprе конкретният XML фрагмент, който искате да актуализиратеnew_xmlе XML фрагментът, който искате да заменитеxpath-exprс
Пример
Ето един основен пример:
SELECT
UPDATEXML(
'<pet><name>Wag</name><type></type></pet>',
'/pet/type',
'<type>Dog</type>'
) AS Result; Резултат:
+---------------------------------------------+ | Result | +---------------------------------------------+ | <pet><name>Wag</name><type>Dog</type></pet> | +---------------------------------------------+
В този пример оригиналната XML маркировка има празен <type> елемент. Използвахме UPDATEXML() за да актуализирате този елемент, така че да съдържа съдържание (Dog ).
Нулеви аргументи
Предаването на null за всеки аргумент връща null :
SELECT
UPDATEXML('<pet></pet>', '/pet', null) AS a,
UPDATEXML(null, '/pet', '<friend></friend>') AS b,
UPDATEXML('<pet></pet>', null, '<friend></friend>') AS c,
UPDATEXML(null, null, null) AS d; Резултат:
+------+------+------+------+ | a | b | c | d | +------+------+------+------+ | NULL | NULL | NULL | NULL | +------+------+------+------+
Липсващи аргументи
Извикване на UPDATEXML() с грешен брой аргументи или без подаване на аргументи води до грешка:
SELECT UPDATEXML(); Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UPDATEXML'