¿Hay alguna forma de realizar una operación LIKE con XQuery de la misma manera que con SQL?xQuery LIKE-operator?
Quiero construir algunas expresiones "startswith", "endswith" y "contains".
ejemplo de lo que quiero lograr:
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
¿Hay alguna manera de lograr esto en XQuery?
EDIT:
tiene la respuesta a la pregunta anterior. Nuevo problema:
¿Habría alguna manera de hacer esto al revés? Me gustaría ejecutar esas consultas con el operador sql equivalente NOT LIKE. es posible? Tiene que ser en un FLWOR expresión
Edit2:
solucionado el problema. Puede ejecutar fn: not (starts-with ('123', '1')) y devuelve falso.
Estoy desconcertado por la restricción "tiene que estar en una expresión FLWOR". ¿Qué pasa con la formulación más simple '/ user [matches (firstname, '. * Xxx')]'? Las expresiones de ruta simples a menudo son más concisas que las expresiones FLWOR. –
Esta es una pregunta útil, que parecía haber respondido usted mismo, pero no proporcionó el resultado. ¿Puedes publicar tus respuestas aquí por favor? ¿Pudo utilizar la sintaxis de la cadena del comparador LIKE o tuvo que traducirla a una cadena de comparación específica de xQuery? – Ben