如何在MySql中跳过撇号(')?

MySQL文档说它应该是\' 。 然而,scite和mysql都显示''有效”。 我看到了,它的工作。 我该怎么办?

你引用的MySQL文档实际上比你提到的要多一点。 它还说,

用“ ' ”引用的string中的“ ' ”可以写成“ '' ”。

(另外,你链接到表8.1。 特殊字符转义序列的MySQL 5.0版本,当前版本是5.6 – 但是当前表8.1。 特殊字符转义序列看起来非常相似。

我认为backslash_quote (string)参数的Postgres注释是提供信息的:

这控制着一个引号是否可以用string中的\'来表示。 表示引号的首选SQL标准方式是将其加倍( '' ),但PostgreSQL历史上也接受了\' 。 但是,使用\'创造安全风险…”

这对我说,使用双引号字符是一个更好的总体和长期的select,而不是使用反斜杠来避免单引号。

现在,如果您还想添加语言select,SQL数据库select及其非标准怪癖,并select查询框架,那么您可能会select不同的select。 你不能提供关于你的限制的很多信息。

标准SQL使用加倍的引号; MySQL必须接受合理的合规性。

 'He said, "Don''t!"' 

我相信user2087510意思是:

 name = 'something' name = name.replace("'", "\\'") 

我也用这个成功了。

只是写''代替'我的意思是两次'

这是一个例子:

 SELECT * FROM pubs WHERE name LIKE "%John's%" 

只需使用双引号括起单引号。

如果你坚持用单引号(以及需要转义字符):

 SELECT * FROM pubs WHERE name LIKE '%John\'s%' 

有三种方式我知道。 第一个不是最漂亮的,第二个是大多数编程语言的常用方法:

  1. 用另一个单引号: 'I mustn''t sin!'
  2. 在单引号之前使用转义字符: 'I mustn\'t sin!'
  3. 使用双引号括住string而不是单引号: "I mustn't sin!"

replacestring

 value = value.replace(/'/g, "\\'"); 

值是你的string将存储在您的数据库。

进一步,

对于这个NPM包,你可以看看它

https://www.npmjs.com/package/mysql-apostrophe

我想如果你有撇号的任何数据点,你可以在撇号前加一个撇号

例如。 “这是约翰的地方”

这里MYSQL假设两个句子“这是约翰的地方”

你可以把“这是约翰的地方”。 我认为它应该这样工作。

这一个工作:

 name = 'John O'Brien' name = name.replace("\'", "\\\'")