如何在JQL中计算不带括号的多个AND和OR?

问题描述 投票:0回答:2

我必须记录一个不再在公司工作的人写的查询。该查询是 Jira 中的 JQL 搜索。这个人没有使用括号,而是一大堆 AND 和 OR。我知道它从左到右求值,但在这种情况下我真的不知道这意味着什么。当我写这些东西时我会使用括号。

这是查询的样子(我将在这里保持一般性。

字段1 = 答案1 AND 字段2 = 答案2 AND 字段3 = 答案3 或字段4 = 答案4 AND 字段5 = 答案5 或字段6 = 答案6 或字段7 = 答案7 AND 字段8 = 答案8

让我们采用第一个“或”。我不知道第一个 OR 是否强制前三项组合在一起,或者是否仅对 field3 和 field4 进行 ORing。

然后第二个 OR 也一样。是只对 field6 和 field7 进行 OR 运算,还是对它和 field7 之前的所有内容进行 OR 运算,或者对它之前的所有内容和它之后的所有内容进行 OR 运算?

最终目标是尝试添加括号并能够引导我的老板了解其真正含义。

到目前为止我唯一尝试过的就是大量阅读和谷歌搜索。

jira jql
2个回答
0
投票

如果您尝试将评估视为在 Excel 函数求值器中完成的方式,那么我很抱歉,这里没那么容易。

要了解 JQL 中的多个逻辑运算符,必须运行查询

  • 通过将查询拆分为更小的查询(分而治之)
  • 分析每个结果
  • 最终整合它们以获得完整的结果。!

您可以使用嵌套 JQL 来获取各种查询的结果。-- 但 Jira 正在开发此功能 - 请参阅 https://jira.atlassian.com/browse/JRASERVER-21936

以及此堆栈溢出参考 JQL 查询 - 在另一个 JQL 查询中使用过滤器结果


0
投票

根据文档这里

您可以在复杂的 JQL 语句中使用括号来强制运算符的优先级。

例如,如果您想查找“SysAdmin”项目中所有已解决的问题,以及当前分配给系统管理员(bobsmith)的所有问题(任何状态、任何项目),您可以使用括号来强制执行优先级查询中的布尔运算符,即

(status=resolved AND project=SysAdmin) OR assignee=bobsmith

请注意,如果不使用括号,则语句将从左到右进行计算。

对于您的情况,最好用括号将所有逻辑运算符括起来以清理混乱。

© www.soinside.com 2019 - 2024. All rights reserved.