在 s3 select 查询中转义单引号

fly*_*ire 3 select amazon-s3 amazon-web-services amazon-s3-select

示例数据,存储在 S3 中的文件中。正如你所看到的,我的数据格式是每行一个 json

{"first":  "John", "last": "Smith"}
{"first":  "Mary", "last": "O'Hara"}
{"first":  "Mary", "last": "Oats"}
Run Code Online (Sandbox Code Playgroud)

我的最终目标是按姓氏进行查询,并使用 like 运算符和用户提供的子字符串。所以我一步步从易到难:

此查询有效并返回所有行:

select s.* from s3object s 
Run Code Online (Sandbox Code Playgroud)

好的!我们继续吧。我尝试的下一个查询有效并返回,如预期的那样,John Smith

select s.* from s3object s where s."last" = 'Smith'
Run Code Online (Sandbox Code Playgroud)

下一步是尝试输入姓氏的子字符串。让我们查找姓氏以“O”开头的所有人员。

select s.* from s3object s where s."last" like 'O%';
Run Code Online (Sandbox Code Playgroud)

这有效并返回我的数据集中的两个玛丽。

下一步是行不通的一步。我想查找姓氏以 O 和撇号开头的所有用户。这我没法工作。我试过:

select s.* from s3object s where s."last" like 'O'%'
select s.* from s3object s where s."last" like 'O\'%'
select s.* from s3object s where s."last" like "O'%"
Run Code Online (Sandbox Code Playgroud)

它们都不起作用。如何在 s3 select 中的字符串文字内添加单引号 (')?

Tar*_*ani 6

您只需要使用两个单引号

SELECT *
FROM Test.testing
WHERE "last" = 'O''Hara'; 
Run Code Online (Sandbox Code Playgroud)

结果