Какой правильный синтаксис SQL для вставки значения с апострофом в нем?
Insert into Person
(First, Last)
Values
'Joe',
'O'Brien'
Я продолжаю получать сообщение об ошибке, так как считаю апостроф после O конечным тегом для значения.
sql
sql-update
sql-insert
Лиора
источник
источник
Ответы:
Избегайте апострофа (т.е. удваивайте символ одинарной кавычки) в вашем SQL:
То же самое относится к запросам SELECT:
Апостроф или одинарная кавычка - это специальный символ в SQL, который указывает начало и конец строковых данных. Это означает, что для использования его как части ваших строковых данных вам необходим
escape
специальный символ. С помощью одной цитаты это обычно достигается путем удвоения вашей цитаты. (Два символа одинарных кавычек, а не двойные кавычки вместо одинарных.)Примечание . Об этой проблеме следует беспокоиться только в том случае, если вы вручную редактируете данные через необработанный интерфейс SQL, поскольку написание запросов вне разработки и тестирования должно быть редким явлением. В коде есть методы и структуры (в зависимости от вашего стека), которые заботятся о экранировании специальных символов, внедрении SQL и т. Д.
источник
Вам просто нужно удвоить одинарные кавычки ...
источник
Вам нужно избежать апострофа. В T-SQL это с двойным апострофом, поэтому ваше
insert
утверждение становится:источник
Values
должен быть заключен в фигурные скобки (что делает его таким же ответом, как и у @JustinNiessner)Потому что для указания начала и конца строки используется одинарная кавычка; Вы должны избежать этого.
Короткий ответ - использовать две одинарные кавычки -
''
для того, чтобы база данных SQL сохраняла значение как'
.Посмотрите, как использовать REPLACE для очистки входящих значений:
Вы хотите проверить
''''
и заменить их, если они существуют в строке''''''
, чтобы избежать одиночной одиночной кавычки.источник
У Эдуффи была хорошая идея . Он просто получил это назад в своем примере кода. В JavaScript или в SQLite апостроф можно заменить символом акцента.
Он (случайно я уверен) поместил символ акцента в качестве разделителя для строки вместо того, чтобы заменить апостроф в О'Брайане. На самом деле это чрезвычайно простое решение для большинства случаев.
источник
Символ апострофа можно вставить, вызвав функцию CHAR со значением поиска в таблице ASCII апострофа , 39. Затем строковые значения можно объединить вместе с оператором сцепления .
источник
Следующий SQL иллюстрирует эту функциональность.
Полученные результаты
источник
используйте двойные кавычки вокруг значений.
источник
He said, "Don't!"
использовать одинарные и / или двойные кавычки - что можно сделать:'He said, "Don''t!"'
или"He said, ""Don't!"""
. При добавлении нового ответа на давно установленный вопрос с принятыми ответами вы должны предоставить новую полную информацию. Использование двойных кавычек является новым, но ограничено несколькими СУБД; Вы должны приложить усилия, чтобы определить хотя бы одного из тех, кто их принимает.Вместо этого используйте обратную черту (на клавише ~);
источник