Có cách nào để thực hiện thao tác LIKE với XQuery giống như với SQL không?XQuery LIKE-operator?
Tôi không thể xây dựng một số cụm từ "bắt đầu", "kết thúc" và "chứa" - biểu hiện.
Ví dụ về những gì tôi muốn đạt được:
for $x in /user where $x/firstname LIKE '%xxx' return $x
for $x in /user where $x/middlename LIKE 'xxx%' return $x
for $x in /user where $x/lastname LIKE '%xxx%' return $x
Có cách nào để đạt được điều này trong XQuery?
EDIT:
Có câu trả lời cho câu hỏi ở trên. Sự cố mới:
Có cách nào để làm điều này ngược lại không? Tôi muốn chạy các truy vấn đó với toán tử NOT LIKE tương đương sql. Điều này có thể không? Nó phải nằm trong biểu thức FLWOR
EDIT2:
Giải quyết vấn đề. Bạn có thể chạy fn: not (starts-with ('123', '1')) và nó trả về false.
Tôi đang bối rối bởi ràng buộc "nó phải ở trong biểu thức FLWOR". Có gì sai với công thức đơn giản hơn '/ user [match (firstname, '. * Xxx')]'? Các biểu thức đường dẫn đơn giản thường ngắn gọn hơn các biểu thức FLWOR. –
Đây là một câu hỏi hữu ích, mà bạn dường như đã tự trả lời, nhưng không cung cấp đầu ra. Bạn có thể đăng câu trả lời của mình ở đây không? Bạn có thể sử dụng cú pháp của chuỗi so sánh LIKE hay bạn phải dịch nó thành chuỗi so sánh cụ thể xQuery? – Ben