单引号字符和管道符号代表什么
What does single quote character and pipe symbol stand for
考虑以下 sql-查询:
SELECT 'delete from TABLE_1 TABLE_1.ID =''' || v.id || ''';'
from TABLE_2 v where v.ID in (select id from TABLE_1);
你怎么读这个语法?
单引号字符 ('
) 开始和结束一个字符串。
双竖线符号 (||
) 连接字符串。
根据一些评论 ||
,不适用于 MySQL。
现在,您的语句甚至包含三引号字符 ('''
)。这是因为为了在(带引号的)字符串中包含单引号字符,它需要被另一个(前面的)单引号字符转义。
所以:'foo'
是字符串foo,'bar' || ' ' || baz
是字符串bar baz和It''s ok
是字符串没问题.
你问题中的select语句returns结果集由一列组成,其数据类型为字符串。这些字符串看起来像这样:
delete from TABLE_1 TABLE_1.ID ='ABCD';
delete from TABLE_1 TABLE_1.ID ='DEFG';
而 ABCD
、DEFG
... 是 v.id
的值(即 table_2 列 ID)。
看起来您的 select 语句用于生成删除语句,而删除语句又必须以某种方式成为 运行。当然,由于 WHERE
缺失,那些创建的语句将不会执行。
考虑以下 sql-查询:
SELECT 'delete from TABLE_1 TABLE_1.ID =''' || v.id || ''';'
from TABLE_2 v where v.ID in (select id from TABLE_1);
你怎么读这个语法?
单引号字符 ('
) 开始和结束一个字符串。
双竖线符号 (||
) 连接字符串。
根据一些评论 ||
,不适用于 MySQL。
现在,您的语句甚至包含三引号字符 ('''
)。这是因为为了在(带引号的)字符串中包含单引号字符,它需要被另一个(前面的)单引号字符转义。
所以:'foo'
是字符串foo,'bar' || ' ' || baz
是字符串bar baz和It''s ok
是字符串没问题.
你问题中的select语句returns结果集由一列组成,其数据类型为字符串。这些字符串看起来像这样:
delete from TABLE_1 TABLE_1.ID ='ABCD';
delete from TABLE_1 TABLE_1.ID ='DEFG';
而 ABCD
、DEFG
... 是 v.id
的值(即 table_2 列 ID)。
看起来您的 select 语句用于生成删除语句,而删除语句又必须以某种方式成为 运行。当然,由于 WHERE
缺失,那些创建的语句将不会执行。