Tôi có một nhiệm vụ phân tích một chuỗi được định dạng XML đơn giản trong một thủ tục được lưu trữ MySQL. XML trông giống như thế này (chỉ dành cho mục đích thử nghiệm):Phân tích cú pháp một chuỗi XML trong MySQL
<parent>
<child>Example 1</child>
<child>Example 2</child>
</parent>
Điều tôi cần làm là tạo ra một tập hợp kết quả mỗi hàng. đang proc lưu trữ của tôi trông như thế này:
DECLARE xmlDoc TEXT;
SET xmlDoc = '<parent><child>Example 1</child><child>Example 2</child></parent>';
SELECT ExtractValue(xmlDoc, '//child');
Điều này không, tuy nhiên, là nó nối tất cả các trận đấu, sản xuất "Ví dụ 1 Ví dụ 2". Đây là, bằng cách này, tài liệu, nhưng hành vi khá vô dụng.
Tôi có thể làm gì để làm cho nó trả về các kết quả phù hợp trong các hàng mà không cần phải đếm các kết quả phù hợp và xử lý chúng từng cái một? Nó có khả thi với MySQL không?
Cảm ơn tất cả!
này hoạt động khá tốt. Cảm ơn. –
Sử dụng truy vấn này, tôi chỉ nhận được hai hàng. Tui bỏ lỡ điều gì vậy? – reticent
@reticent: như đã nói trước đây, 'MySQL' thiếu một hàm tạo hàng. Truy vấn con chỉ trả về 2 hàng mà bạn nhận được. Thêm nhiều hàng vào 'vars' (hoặc thay thế nó bằng' SELECT' từ một bảng đủ lớn). – Quassnoi