MariaDB
 sql >> Database >  >> RDS >> MariaDB

Come funziona UPDATEXML() in MariaDB

In MariaDB, UPDATEXML() è una funzione incorporata che sostituisce una singola porzione di un dato frammento di markup XML con un nuovo frammento XML, quindi restituisce l'XML aggiornato.

Sintassi

La sintassi è questa:

UPDATEXML(xml_target, xpath_expr, new_xml)

Dove:

  • xml_target è il markup XML che contiene il frammento XML che desideri aggiornare
  • xpath_expr è il frammento XML specifico che vuoi aggiornare
  • new_xml è il frammento XML che vuoi sostituire xpath-expr con

Esempio

Ecco un esempio di base:

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

Risultato:

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

In questo esempio, il markup XML originale ha un <type> vuoto elemento. Abbiamo usato UPDATEXML() per aggiornare quell'elemento, in modo che contenga contenuto (Dog ).

Argomenti nulli

Passaggio null per qualsiasi argomento restituisce 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;

Risultato:

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

Argomenti mancanti

Chiamando UPDATEXML() con il numero errato di argomenti o senza passare alcun argomento genera un errore:

SELECT UPDATEXML();

Risultato:

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