Выбираясь в запросе ILIKE

голоса
0

Мне нужно сделать запрос, поиск по тексту , с «Нома% TESTE \ /» в качестве префикса. Я делаю запрос с помощью:

где имя 'Нома% Teste \ /%' ILIKE ESCAPE 'а' ( с использованием в качестве экранирующего символа).

Существует ряд , которые соответствуют этому, но этот запрос ничего не возвращает. Удаление слэш ( 'Нома% Teste \' ), она работает. Но я не понимаю , почему слэш является проблемой, так как бежать по умолчанию является обратной косой черты , и я изменил его на «а» в этом тесте.

Существует что-то, что я не хватает? (Я консультировался МТФ)

Задан 13/10/2008 в 04:17
источник пользователем
На других языках...                            


2 ответов

голоса
1

Вы пробовали только с помощью обратной косой черты, чтобы избежать его, как это:

where "name" ILIKE 'Nome \% teste \\\/';
Ответил 13/10/2008 в 04:20
источник пользователем

голоса
2

Используйте «ESCAPE» спецификатор

WHERE "name" ILIKE 'Nome ~% teste \\/' ESCAPE '~' 

http://www.postgresql.org/docs/8.2/static/functions-matching.html

Примечание: вы все равно должны иметь \ дважды для строки синтаксического анализа.

Без ПОБЕГ вам нужно будет сделать

WHERE "name" ILIKE 'Nome \% test \\\\/' 

(4 \ «s для представления одного буквального \)


Спасибо, но я до сих пор оригинальный вопрос с косой чертой. Поиск с помощью

WHERE "name" ILIKE 'Nome \% test \\\\/%' 

не дают мне результат, в то время как

WHERE "name" ILIKE 'Nome \% test \\\\%' 

(Удалили слэш, который присутствует в строке) работает, как ожидалось. - KKnD

его возможно ваша строка не имеет буквальный «/», как указано. Вы, возможно, есть нуль или другой символ пробела между ними. Или, возможно, у вас есть / в другом наборе символов.

Я хотел бы попытаться использовать это испытание для этого возможного сценария

 WHERE "name" ILIKE 'Nome \% ' AND "name" ~* '\\.{1,10}/' 

который будет возвращать строки, которые / отделенные что-то (но не линии без разделения)

Ответил 13/10/2008 в 04:38
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more