Поиск LIKE по текстовому полю

Привет всем. Столкнулся с такой проблемой.

Есть таблица, в ней текстовое поле в которое пишется различный текст.
Случилось так, что в этот текстовый столбец записали текст следующего вида "С\Х УДАЧНЫЙ", при записи инсерт выглядел так:

INSERT INTO my_table(...,punkt,...) VALUES (...,'C\\Х УДАЧНЫЙ',...);

Так вот, если потом попытаться найти этот пункт по полному значению:
SELECT punkt FROM my_table WHERE punkt='C\\Х УДАЧНЫЙ';

Все проходит хорошо, получаем результат.
А вот если реализовать запрос следующим образом:
SELECT punkt FROM my_table WHERE punkt LIKE'C\\Х%';

Получаем, что в базе такой записи нет.

ЗЫ. Помогите решить данную проблему, а то что-то я туплю. Не могу найти в инете ответа =/

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Во-первых, я очень удивился,

Во-первых, я очень удивился, что в примере который вы дали и который я копипастил, буква C в 'C\\X%' у вас почему-то английская, а не русская. Это вы специально для усложнения задачи и нашей дрессировки? :)

Решит вашу проблему конструкция:

SELECT kaka FROM tmp WHERE kaka LIKE E\\\\Х%';

Можно и без E перед ', но если без E, то PostgreSQL выдаёт подсказку, что лучше бы использовать E.
Почему? Читаем доку (http://www.postgresql.org/docs/8.4/interactive/functions-matching.html#F...):

Note that the backslash already has a special meaning in string literals, so to write a pattern constant that contains a backslash you must write two backslashes in an SQL statement (assuming escape string syntax is used, see Section 4.1.2.1). Thus, writing a pattern that actually matches a literal backslash means writing four backslashes in the statement.

Спасибо большое  По поводу

Спасибо большое =)
По поводу АНГЛИЙСКОЙ 'C' - это не специально =). Просто Русская С и аНГЛИЙСКАЯ СИ, на одной клавише =)

Еще раз спасибо за подсказку =)

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023