MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie UPDATEXML() in MariaDB funktioniert

In MariaDB UPDATEXML() ist eine integrierte Funktion, die einen einzelnen Teil eines gegebenen XML-Markup-Fragments durch ein neues XML-Fragment ersetzt und dann das aktualisierte XML zurückgibt.

Syntax

Die Syntax lautet wie folgt:

UPDATEXML(xml_target, xpath_expr, new_xml)

Wo:

  • xml_target ist das XML-Markup, das das zu aktualisierende XML-Fragment enthält
  • xpath_expr ist das spezifische XML-Fragment, das Sie aktualisieren möchten
  • new_xml ist das XML-Fragment, das Sie xpath-expr ersetzen möchten mit

Beispiel

Hier ist ein einfaches Beispiel:

SELECT
    UPDATEXML(
        '<pet><name>Wag</name><type></type></pet>', 
        '/pet/type', 
        '<type>Dog</type>'
        ) AS Result;

Ergebnis:

+---------------------------------------------+
| Result                                      |
+---------------------------------------------+
| <pet><name>Wag</name><type>Dog</type></pet> |
+---------------------------------------------+

In diesem Beispiel hat das ursprüngliche XML-Markup einen leeren <type> Element. Wir haben UPDATEXML() verwendet um dieses Element zu aktualisieren, sodass es Inhalt enthält (Dog ).

Null-Argumente

Übergabe von null für jedes Argument gibt null zurück :

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;

Ergebnis:

+------+------+------+------+
| a    | b    | c    | d    |
+------+------+------+------+
| NULL | NULL | NULL | NULL |
+------+------+------+------+

Fehlende Argumente

Aufruf von UPDATEXML() mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:

SELECT UPDATEXML();

Ergebnis:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UPDATEXML'