sql >> Databasteknik >  >> RDS >> MariaDB

Hur UPDATEXML() fungerar i MariaDB

I MariaDB, UPDATEXML() är en inbyggd funktion som ersätter en enskild del av ett givet fragment av XML-uppmärkning med ett nytt XML-fragment och sedan returnerar den uppdaterade XML-filen.

Syntax

Syntaxen ser ut så här:

UPDATEXML(xml_target, xpath_expr, new_xml)

Var:

  • xml_target är XML-uppmärkningen som innehåller XML-fragmentet du vill uppdatera
  • xpath_expr är det specifika XML-fragment som du vill uppdatera
  • new_xml är XML-fragmentet som du vill ersätta xpath-expr med

Exempel

Här är ett grundläggande exempel:

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

Resultat:

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

I det här exemplet har den ursprungliga XML-uppmärkningen en tom element. Vi använde UPDATEXML() för att uppdatera det elementet så att det innehåller innehåll (Dog ).

Nollargument

Skickar null för alla argument returnerar 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;

Resultat:

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

Argument saknas

Anropar UPDATEXML() med fel antal argument, eller utan att skicka några argument resulterar i ett fel:

SELECT UPDATEXML();

Resultat:

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

  1. Identifiera och hantera uppdragskritiska åtkomstapplikationer under ett utvecklingsprojekt

  2. Hur man skapar pivottabell i PostgreSQL

  3. Ställer du in främmande nycklar i phpMyAdmin?

  4. Hur kör man en lagrad procedur varje dag i SQL Server Express Edition?