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_target
là đánh dấu XML có chứa phân đoạn XML mà bạn muốn cập nhật -
xpath_expr
là phân đoạn XML cụ thể mà bạn muốn cập nhật -
new_xml
là phân đoạn XML mà bạn muốn thay thếxpath-expr
vớ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'