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_target
is de XML-opmaak die het XML-fragment bevat dat u wilt bijwerkenxpath_expr
is het specifieke XML-fragment dat u wilt bijwerkennew_xml
is het XML-fragment dat u wilt vervangenxpath-expr
met
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'