Ошибка сравнения строк содержит "_" в Postgres - PullRequest
0 голосов
/ 04 марта 2020

Ошибка сравнения в Postgres (версия 11) при сравнении знака _.

У меня есть строка (показана ниже). Я хочу, чтобы она сравнивалась со словом, и хочет проверить, является ли это слово _WIN_ существует в строке. Если да, это должно дать true.

Но когда я ищу таким образом, '%_WIN_%' это дает как TRUE, хотя искомая строка точно не содержит это слово.

Может кто-нибудь предложить что я делаю не так?

select 'New_vit_Vitamin_D_IND-tonline_WINTERSEAS_2020.02.09' ILIKE '%_WIN_%'

Примечание: ожидаемый РЕЗУЛЬТАТ должен быть ЛОЖЬ, но с ИСТИНОЙ

1 Ответ

1 голос
/ 04 марта 2020

Подчеркивание - это подстановочный знак для одного символа в SQL. Если вы хотите найти самого персонажа, вам нужно убежать от него:

ILIKE '%\_WIN\_%' ESCAPE '\'
...