7

Вставка текста с одинарными кавычками в PostgreSQL

1

У меня есть таблица test(id,name).

Мне нужно вставить такие значения, как: user's log, 'my user', customer's.

insert into test values (1,'user's log');
insert into test values (2,''my users'');
insert into test values (3,'customer's');

При выполнении любого из вышеуказанных операторов я получаю ошибку.

Если есть способ сделать это правильно, пожалуйста, поделитесь. Я не хочу использовать подготовленные выражения.

Возможно ли это сделать с помощью механизма экранирования в SQL?

4 ответ(ов)

0

В PostgreSQL, если вам нужно вставить значения с одинарной кавычкой ('), необходимо экранировать её двойной одинарной кавычкой (''). Вот примеры, как это сделать:

INSERT INTO test VALUES (1, 'user''s log');
INSERT INTO test VALUES (2, '''my users''');
INSERT INTO test VALUES (3, 'customer''s');

Таким образом, чтобы правильно вставить строку, содержащую одинарные кавычки, просто удостоверьтесь, что каждый одинарный символ кавычки заменён на два последовательных одинарных символа.

0

Вы можете использовать функцию chr(int) в PostgreSQL для вставки строки с одинарными кавычками. Пример запроса может выглядеть следующим образом:

INSERT INTO test VALUES (2, '|| chr(39) || ''my users'' || chr(39)');

Здесь chr(39) возвращает символ одинарной кавычки, и вы можете вставлять его в строку. Обратите внимание, что одинарные кавычки внутри строки также требуют экранирования.

0

Чтобы выполнить задачу в PostgreSQL с использованием JSON, вы можете воспользоваться функцией to_json(value). Эта функция преобразует значение (например, строки, числа, массивы и т.д.) в формат JSON. Например:

SELECT to_json(my_column) FROM my_table;

В данном случае my_column – это название столбца, данные которого вы хотите преобразовать в JSON. Результатом будет JSON-представление значений из указанного столбца.

Дополнительную информацию о функции to_json и других функциях для работы с JSON можно найти в официальной документации PostgreSQL.

0

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

Неправильный способ: 'user's log'

Правильный способ: 'user''s log'

Проблема:

insert into test values (1,'user's log');
insert into test values (2,''my users'');
insert into test values (3,'customer's');

Решение:

insert into test values (1,'user''s log');
insert into test values (2,'''my users''');
insert into test values (3,'customer''s');

В приведенных примерах одинарные кавычки в строках были удвоены, что является стандартным способом их экранирования в SQL. Таким образом, запросы будут выполняться корректно и без ошибок.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь