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