Trong MariaDB, UPDATEXML() là một hàm tích hợp thay thế một phần của một phân đoạn đánh dấu XML nhất định bằng một phân đoạn XML mới, sau đó trả về XML đã cập nhật.
Cú pháp
Cú pháp như sau:
UPDATEXML(xml_target, xpath_expr, new_xml) Ở đâu:
-
xml_targetlà đánh dấu XML có chứa phân đoạn XML mà bạn muốn cập nhật -
xpath_exprlà phân đoạn XML cụ thể mà bạn muốn cập nhật -
new_xmllà phân đoạn XML mà bạn muốn thay thếxpath-exprvới
Ví dụ
Đây là một ví dụ cơ bản:
SELECT
UPDATEXML(
'<pet><name>Wag</name><type></type></pet>',
'/pet/type',
'<type>Dog</type>'
) AS Result; Kết quả:
+---------------------------------------------+ | Result | +---------------------------------------------+ | <pet><name>Wag</name><type>Dog</type></pet> | +---------------------------------------------+
Trong ví dụ này, đánh dấu XML ban đầu có <type> trống thành phần. Chúng tôi đã sử dụng UPDATEXML() để cập nhật phần tử đó, để phần tử đó chứa nội dung (Dog ).
Đối số rỗng
Chuyển null đối với bất kỳ đối số nào trả về 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; Kết quả:
+------+------+------+------+ | a | b | c | d | +------+------+------+------+ | NULL | NULL | NULL | NULL | +------+------+------+------+
Thiếu đối số
Gọi UPDATEXML() với số lượng đối số sai hoặc không chuyển bất kỳ đối số nào dẫn đến lỗi:
SELECT UPDATEXML(); Kết quả:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UPDATEXML'