我试图从jcr中的不同区域抓取相同类型的多个节点,并按日期排序.
SELECT * FROM [social:asiResource]
WHERE [sling:resourceType] = 'social/qna/components/hbs/topic' AND
[isFeatured_b] = true AND
NOT CONTAINS([cq:tags],'administrative:blacklist') AND
(ISDESCENDANTNODE([/path/to/content]) OR
ISDESCENDANTNODE([/path/to/content]))
ORDER BY [cq:lastModified] DESC
Run Code Online (Sandbox Code Playgroud)
这将返回正确的结果集,但不是正确的顺序.事实上改变DESC到ASC不以任何方式改变的结果.
我的解决方案目前是进行多个查询并执行一个允许ORDER BY按照它应该运行的联合.
SELECT * FROM [social:asiResource]
WHERE [sling:resourceType] = 'social/qna/components/hbs/topic' AND
[isFeatured_b] = true AND
NOT CONTAINS([cq:tags],'administrative:blacklist') AND
ISDESCENDANTNODE([/path/to/content])
UNION
SELECT * FROM [social:asiResource] WHERE
[sling:resourceType] = 'social/qna/components/hbs/topic' AND
[isFeatured_b] = true AND
NOT CONTAINS([cq:tags],'administrative:blacklist') AND
ISDESCENDANTNODE([/path/to/content])
ORDER BY [cq:lastModified] DESC
Run Code Online (Sandbox Code Playgroud)
不幸的是,我正在搜索大约30个节点,使后一个查询无法使用.有没有办法使用ORDER BY而不使用UNION?