插入带有撇号的值的正确SQL语法是什么?
Insert into Person
(First, Last)
Values
'Joe',
'O'Brien'
我一直得到一个错误,因为我认为O后面的撇号是值的结束标记。
插入带有撇号的值的正确SQL语法是什么?
Insert into Person
(First, Last)
Values
'Joe',
'O'Brien'
我一直得到一个错误,因为我认为O后面的撇号是值的结束标记。
当前回答
你只需要把单引号加倍…
insert into Person (First, Last)
values ('Joe', 'O''Brien')
其他回答
你只需要把单引号加倍…
insert into Person (First, Last)
values ('Joe', 'O''Brien')
因为单引号用于表示字符串的开始和结束;你需要逃离它。
简单的回答是使用两个单引号- " -以便SQL数据库将值存储为'。
看一下使用REPLACE来清除传入值:
甲骨文取代 SQL Server REPLACE MySQL取代 PostgreSQL取代
您希望检查'''',如果它们存在于字符串中,则将它们替换为'''''',以便转义单个单引号。
Eduffy有个好主意。他只是在代码示例中搞反了。在JavaScript或SQLite中,都可以用重音符号替换撇号。
他(我确信是偶然地)将重音符号作为字符串的分隔符,而不是替换O'Brian中的撇号。事实上,对于大多数情况,这是一个非常简单的解决方案。
可以通过使用撇号的ASCII表查找值39调用CHAR函数来插入撇号字符。然后可以使用连接操作符将字符串值连接在一起。
Insert into Person
(First, Last)
Values
'Joe',
concat('O',char(39),'Brien')
在值周围使用双引号。
insert into Person (First, Last) Values("Joe","O'Brien")