In MariaDB, UPDATEXML() is een ingebouwde functie die een enkel deel van een bepaald fragment van XML-opmaak vervangt door een nieuw XML-fragment en vervolgens de bijgewerkte XML retourneert.
Syntaxis
De syntaxis gaat als volgt:
UPDATEXML(xml_target, xpath_expr, new_xml) Waar:
xml_targetis de XML-opmaak die het XML-fragment bevat dat u wilt bijwerkenxpath_expris het specifieke XML-fragment dat u wilt bijwerkennew_xmlis het XML-fragment dat u wilt vervangenxpath-exprmet
Voorbeeld
Hier is een eenvoudig voorbeeld:
SELECT
UPDATEXML(
'<pet><name>Wag</name><type></type></pet>',
'/pet/type',
'<type>Dog</type>'
) AS Result; Resultaat:
+---------------------------------------------+ | Result | +---------------------------------------------+ | <pet><name>Wag</name><type>Dog</type></pet> | +---------------------------------------------+
In dit voorbeeld heeft de originele XML-opmaak een lege <type> element. We gebruikten UPDATEXML() om dat element bij te werken, zodat het inhoud bevat (Dog ).
Nullargumenten
Doorgeven van null voor elk argument retourneert 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; Resultaat:
+------+------+------+------+ | a | b | c | d | +------+------+------+------+ | NULL | NULL | NULL | NULL | +------+------+------+------+
Ontbrekende argumenten
Aanroepen van UPDATEXML() met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten resulteert in een fout:
SELECT UPDATEXML(); Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UPDATEXML'