sql >> Base de Datos >  >> RDS >> MariaDB

Cómo funciona UPDATEXML() en MariaDB

En MariaDB, UPDATEXML() es una función integrada que reemplaza una sola porción de un fragmento dado de marcado XML con un nuevo fragmento XML, luego devuelve el XML actualizado.

Sintaxis

La sintaxis es así:

UPDATEXML(xml_target, xpath_expr, new_xml)

Dónde:

  • xml_target es el marcado XML que contiene el fragmento XML que desea actualizar
  • xpath_expr es el fragmento XML específico que desea actualizar
  • new_xml es el fragmento XML que desea reemplazar xpath-expr con

Ejemplo

He aquí un ejemplo básico:

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

Resultado:

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

En este ejemplo, el marcado XML original tiene un <type> vacío elemento. Usamos UPDATEXML() para actualizar ese elemento, de modo que contenga contenido (Dog ).

Argumentos nulos

Pasando null para cualquier argumento devuelve 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;

Resultado:

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

Argumentos faltantes

Llamando a UPDATEXML() con el número incorrecto de argumentos, o sin pasar ningún argumento da como resultado un error:

SELECT UPDATEXML();

Resultado:

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