sql >> データベース >  >> RDS >> MariaDB

MariaDBでのUPDATEXML()のしくみ

    MariaDBでは、UPDATEXML() は、XMLマークアップの特定のフラグメントの一部を新しいXMLフラグメントに置き換えてから、更新されたXMLを返す組み込み関数です。

    構文

    構文は次のようになります:

    UPDATEXML(xml_target, xpath_expr, new_xml)

    場所:

    • xml_target 更新するXMLフラグメントを含むXMLマークアップです
    • xpath_expr 更新する特定のXMLフラグメントです
    • new_xml xpath-exprを置き換えるXMLフラグメントです と

    基本的な例は次のとおりです。

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

    結果:

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

    この例では、元のXMLマークアップに空の<type>があります エレメント。 UPDATEXML()を使用しました その要素を更新して、コンテンツが含まれるようにします(Dog

    ヌル引数

    nullを渡す 引数は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;

    結果:

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

    引数がありません

    UPDATEXML()の呼び出し 引数の数が間違っているか、引数を渡さないと、エラーが発生します:

    SELECT UPDATEXML();

    結果:

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

    1. 12一般的に使用されるSQL演算子

    2. SQLiteで先行ゼロを使用して数値をフォーマットする方法

    3. すべてのリモート接続を許可する、MySQL

    4. データベーススキーマオブジェクトチェックの自動化