我的jcrBrowser中有以下结构
我想选择所有具有“businessGroups”属性的节点,并且其值等于这些数字中的一些 - 12,10,1。请参阅下面的查询
select * from nt:base where jcr:primaryType='mgnl:component' and businessGroups IN ('10', '12', '1')
但是这个查询不起作用,我收到一个错误:
Encountered "IN" at line 1, column 81.
Was expecting one of:
"IS" ...
"NOT" ...
"LIKE" ...
"BETWEEN" ...
"(" ...
"." ...
"<" ...
"=" ...
">" ...
"<>" ...
">=" ...
"<=" ...
那么问题是什么?我的查询的语法是不正确的还是运算符IN的问题? 顺便说一下,如果我改变我的查询
select * from nt:base where jcr:primaryType='mgnl:component' and businessGroups = '1'
一切正常
答案 0 :(得分:0)
不是真正的Magnolia特定问题,更多JCR具体问题。
答案很简单,JCR搜索不是完整的SQL,而是SQL指令的一个子集。 JCR提供的是类似SQL的搜索功能。并且&#39; IN&#39;根本不受支持。有关SQL语法,请参阅JCR specification(这是您在上面的查询中使用的语法)。
还有JCR 2.0规范,它定义了更高级的SQL-2 syntax。您可能想切换到那个。或者您可以使用也支持搜索的xPath。
HTH, 扬