sql >> Databáze >  >> RDS >> MariaDB

Jak UPDATEXML() funguje v MariaDB

V MariaDB, UPDATEXML() je vestavěná funkce, která nahradí jednu část daného fragmentu značky XML novým fragmentem XML a poté vrátí aktualizované XML.

Syntaxe

Syntaxe vypadá takto:

UPDATEXML(xml_target, xpath_expr, new_xml)

Kde:

  • xml_target je označení XML, které obsahuje fragment XML, který chcete aktualizovat
  • xpath_expr je konkrétní fragment XML, který chcete aktualizovat
  • new_xml je fragment XML, který chcete nahradit xpath-expr s

Příklad

Zde je základní příklad:

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

Výsledek:

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

V tomto příkladu má původní označení XML prázdné <type> živel. Použili jsme UPDATEXML() aktualizovat tento prvek tak, aby obsahoval obsah (Dog ).

Nulové argumenty

Předávání null pro jakýkoli argument vrátí 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;

Výsledek:

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

Chybí argumenty

Volání UPDATEXML() s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:

SELECT UPDATEXML();

Výsledek:

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

  1. Jak zkontrolovat velikost databáze a tabulky MySQL

  2. Jak získat včerejší datum v Oracle

  3. Ukončení nečinných připojení mysql

  4. Jak mohu odstranit duplicitní řádky?