Привет всем. Столкнулся с такой проблемой.
Есть таблица, в ней текстовое поле в которое пишется различный текст.
Случилось так, что в этот текстовый столбец записали текст следующего вида "С\Х УДАЧНЫЙ", при записи инсерт выглядел так:
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%' у вас почему-то английская, а не русская. Это вы специально для усложнения задачи и нашей дрессировки?
Решит вашу проблему конструкция:
Можно и без 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' - это не специально . Просто Русская С и аНГЛИЙСКАЯ СИ, на одной клавише
Еще раз спасибо за подсказку