SQL2-запрос с равенством с использованием обратной косой черты
вопрос
У меня есть индекс свойства дуба на имущество somePath
Когда я выполняю SQL2-запросы к этому свойству, как показано ниже, я получаю результаты:
select * from [dam:Asset] as d
where d.[jcr:content/metadata/somePath] = 'ABC'
Однако, когда я помещаю значения с обратной косой чертой в этот запрос, он не может найти никаких результатов, хотя в метаданных есть совпадения.
select * from [dam:Asset] as d
where d.[jcr:content/metadata/somePath] = 'F:\path\to\somewhere.jpg'
Весь контент правильно проиндексирован и индекс используется (отображается в объяснительном запросе)
Пробные
Оператор ESCAPE - ОТКАЗ
Я уже пытался использовать оператор ESCAPE из команды LIKE, но это не работает с простым оператором равенства.
Избегайте обратной косой черты (JCR SQL2) - СБОЙ
Когда я пытаюсь избежать обратной косой черты, как я нашел в какой-то темной документации jcr sql2 ('), я также не получаю результатов:
select * from [dam:Asset] as d
where d.[jcr:content/metadata/somePath] = "F:'\path'\to'\somewhere.jpg"
Избегайте обратной косой черты (в стиле Java) - ОТКАЗ
Когда я пытаюсь избежать стиля Java с обратной косой чертой, я также не получаю никаких результатов:
select * from [dam:Asset] as d
where d.[jcr:content/metadata/somePath] = 'F:\\path\\to\\somewhere.jpg'
URL Кодировать обратную косую черту - СБОЙ
Применить кодировку URL к строке, без результатов:
select * from [dam:Asset] as d
where d.[jcr:content/metadata/somePath] = 'F:%5Cpath%5Cto%5Csomewhere.jpg'
Используйте квадратные скобки, чтобы убежать от любых символов - СБОЙ
Оберните значение в квадратных скобках, как в случае с выражением where, оставленным операндом, без результатов (как с кавычками, так и без них):
select * from [dam:Asset] as d
where d.[jcr:content/metadata/somePath] = [F:\path\to\somewhere.jpg]
CAST значение в String - FAILURE
Приведите значение явно к String, без результатов:
select * from [dam:Asset] as d
where d.[jcr:content/metadata/somePath] = CAST('F:\path\to\somewhere.jpg' AS STRING)
Используйте оператор CONTAINS - ВРЕМЕННОЕ РЕШЕНИЕ
Когда я использую CONTAINS, я получаю результаты, но я хотел бы избежать этого, если это возможно.
select * from [dam:Asset] as d
where ISDESCENDANTNODE(d, '/content/dam') AND CONTAINS(d.* , 'F:\path\to\somewhere.jpg')
Любые идеи о том, как SQL2 обрабатывает значения свойств с обратной косой черты?