MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como UPDATEXML() funciona no MariaDB


No MariaDB, UPDATEXML() é uma função interna que substitui uma única parte de um determinado fragmento de marcação XML por um novo fragmento XML e, em seguida, retorna o XML atualizado.

Sintaxe


A sintaxe fica assim:
UPDATEXML(xml_target, xpath_expr, new_xml)

Onde:
  • xml_target é a marcação XML que contém o fragmento XML que você deseja atualizar
  • xpath_expr é o fragmento XML específico que você deseja atualizar
  • new_xml é o fragmento XML que você deseja substituir xpath-expr com

Exemplo


Segue um exemplo 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> |
+---------------------------------------------+

Neste exemplo, a marcação XML original tem um <type> vazio elemento. Usamos UPDATEXML() para atualizar esse elemento, para que ele contenha conteúdo (Dog ).

Argumentos nulos


Passando null para qualquer argumento retorna 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 ausentes


Chamando UPDATEXML() com o número errado de argumentos ou sem passar nenhum argumento resulta em um erro:
SELECT UPDATEXML();

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