插入带有撇号的值的正确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")
如果它是静态文本,你可以使用两个单引号而不是一个,如下所示:
DEC @text = 'Khabir''s Account'
在Khabir后面有两个单引号(")
如果你的文本不是静态的,它被传递在存储过程参数,那么
REPLACE(@text, '''', '')
这就是我的数据作为API响应的样子,我想要存储在MYSQL数据库中。它包含报价,HTML代码等。
例子:-
{
rewardName: "Cabela's eGiftCard $25.00",
shortDescription: '<p>adidas gift cards can be redeemed in over 150 adidas Sport Performance, adidas Originals, or adidas Outlet stores in the US, as well as online at <a href="http://adidas.com/">adidas.com</a>.</p>
terms: '<p>adidas Gift Cards may be redeemed for merchandise on <a href="http://adidas.com/">adidas.com</a> and in adidas Sport Performance, adidas Originals, and adidas Outlet stores in the United States.'
}
解决方案
CREATE TABLE `brand` (
`reward_name` varchar(2048),
`short_description` varchar(2048),
`terms` varchar(2048),
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;
在插入时,In后跟JSON.stringify()
let brandDetails= {
rewardName: JSON.stringify(obj.rewardName),
shortDescription: JSON.stringify(obj.shortDescription),
term: JSON.stringify(obj.term),
}
上面是JSON对象,下面是将数据插入MySQL的SQL查询。
let query = `INSERT INTO brand (reward_name, short_description, terms)
VALUES (${brandDetails.rewardName},
(${brandDetails.shortDescription}, ${brandDetails.terms})`;
它的工作…
你只需要把单引号加倍…
insert into Person (First, Last)
values ('Joe', 'O''Brien')
使用反勾号(在~键上)代替;
`O'Brien`