0

我正在使用如下 JCR SQL2 查询:

SELECT parent.* FROM [rep:User] AS parent INNER JOIN [nt:unstructured] AS child ON ISCHILDNODE(child,parent) WHERE ISDESCENDANTNODE(parent,'/website/test/users') AND (UPPER(child.[email]) ='firstname_lastname@testemail.com') AND (child.[email] IS NOT NULL)

在这种情况下,我得到了正确的要求。

但是如何在 JCR SQL2 查询中转义电子邮件中的撇号?例如,如果我搜索firstname_last'name@testemail.com,我得到 java.text.ParseException。如何在 JCR SQL2 查询中转义特殊字符?

4

1 回答 1

0

您可以使用单引号/撇号'作为转义字符。但是,我怀疑您的查询是否会返回结果,因为您正在将存储库中的大写值与查询中的小写值进行比较。

添加了下面的查询,但不转换为大写字母并转义撇号。

SELECT parent.* FROM [rep:User] AS parent INNER JOIN [nt:unstructured] AS child ON ISCHILDNODE(child,parent) WHERE ISDESCENDANTNODE(parent,'/website/test/users') AND (child.[email] ='firstname_last''name@testemail.com') AND (child.[email] IS NOT NULL)
于 2020-08-06T05:26:33.273 回答