我从Mysql官方网站dev.mysql.com中选择了这些行。 我无法理解这些线条的含义。
有几种方法可以在字符串中包含引号字符:
引用“'”的字符串中的“'”可写为“''”。
引用“”“的字符串中的”“”可写为“”“”。
我不明白这是怎么回事。
的MySQL>选择'hel''lo';
Outout:hel'lo
请帮助
答案 0 :(得分:0)
你在单引号内有一个字符串,然后它找到另一个引用,由另一个代码转义。所以,它将转化为
'(start of string)hel'(escaping the next quote)'(the escaped quote)lo'(ending the string)
因此输出:
hel'lo
答案 1 :(得分:0)
这很简单。如果您需要在由这些引号分隔的字符串文字中放置引号,则不能仅使用独立引号字符(如'O'Brien'
),因为没有简单的方法可以告诉哪个第二或第三个报价是收盘价。
所以他们引入了一条规则。如果SQL解释器位于带引号的字符串中并且它找到另一个引用,则它使用以下规则:
因此,例如,考虑:
select * from people where surname = 'O'Brien' order by id
现在你和我可以分辨哪些引号实际上终止了字符串文字,因为我们了解名称是如何工作的。计算机并不认为这是理所当然的,而是要求:
select * from people where surname = 'O''Brien' order by id
并将文字内的''
转换为单个'
。