解释以下几行mysql字符串文字

解释以下几行mysql字符串文字,mysql,Mysql,我从Mysql官方网站上选择了这些行。 我无法理解这些台词的意思 在字符串中包含引号字符有几种方法: 带“.”的字符串中的“.”可以写为““”” 带“”的字符串中的“”可以写为“” 我不明白这是怎么回事 mysql>选择“hel”和“lo” 外面:你好 请帮助您在单引号内有一个字符串,然后它会找到另一个引号,由另一个代码转义。因此,它将转化为 '(start of string)hel'(escaping the next quote)'(the escaped quote)lo'(ending

我从Mysql官方网站上选择了这些行。 我无法理解这些台词的意思

在字符串中包含引号字符有几种方法:

带“.”的字符串中的“.”可以写为““””

带“”的字符串中的“”可以写为“”

我不明白这是怎么回事

mysql>选择“hel”和“lo”

外面:你好


请帮助

您在单引号内有一个字符串,然后它会找到另一个引号,由另一个代码转义。因此,它将转化为

'(start of string)hel'(escaping the next quote)'(the escaped quote)lo'(ending the string)
从而输出:

hel'lo

很简单。如果需要将引号放在由这些引号分隔的字符串文字中,则不能仅使用独立的引号字符(如
'O'Brien'
),因为无法简单地分辨第二个或第三个引号中的哪一个是结束引号

所以他们引入了一条规则。如果SQL解释器位于带引号的字符串中,并且找到了另一个引号,则它将使用以下规则:

  • 如果引号后面紧跟着另一个引号,则假定用户希望在文本中包含一个引号
  • 否则,它就是文字的结束引号
因此,例如,考虑:

select * from people where surname = 'O'Brien' order by id
现在我们可以知道哪些引号实际上终止了字符串文字,因为我们知道名称是如何工作的。计算机并不认为这是理所当然的,而是要求:

select * from people where surname = 'O''Brien' order by id
并将文本中的
'
转换为单个
'