MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Comment UPDATEXML () fonctionne dans MariaDB

Dans MariaDB, UPDATEXML() est une fonction intégrée qui remplace une seule partie d'un fragment donné de balisage XML par un nouveau fragment XML, puis renvoie le XML mis à jour.

Syntaxe

La syntaxe ressemble à ceci :

UPDATEXML(xml_target, xpath_expr, new_xml)

Où :

  • xml_target est le balisage XML qui contient le fragment XML que vous souhaitez mettre à jour
  • xpath_expr est le fragment XML spécifique que vous souhaitez mettre à jour
  • new_xml est le fragment XML que vous souhaitez remplacer xpath-expr avec

Exemple

Voici un exemple de base :

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

Résultat :

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

Dans cet exemple, le balisage XML d'origine a un <type> vide élément. Nous avons utilisé UPDATEXML() pour mettre à jour cet élément, afin qu'il contienne du contenu (Dog ).

Arguments nuls

Passer null pour tout argument renvoie 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;

Résultat :

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

Arguments manquants

Appel de UPDATEXML() avec le mauvais nombre d'arguments, ou sans passage d'arguments, une erreur se produit :

SELECT UPDATEXML();

Résultat :

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