作者: Dan Radigan

嘿,JIRA用户和管理员。我是丹。我使用JIRA已经有三年时间,最近刚刚加入了Atlassian的大家庭。JQL是我在JIRA里最喜欢的功能。使用JIRA你可以快速得到想要的信息,更好的是,JQL让你找到一些你从来没想过能够找到的东西。

JQL是JIRA Query语言的简称,它是JIRA搜索问题最灵活的方式。JIRA谁都可以用:开发人员,测试人员,项目经理,以及商业用户。这篇博文,是专门为那些没有数据库搜索经验的人准备的教程。

如果你是懂SQL的开发人员

Atlassian JQL的操作和SQL十分相似,不过可不要和Java Query Languge混淆哦,搜索框配备了代码提示和内联验证,能让构建查询更方便。尝试JQL JIRA实例,您可以:

  • 登录JIRA
  • 点击问题
  • 单击“编辑”(如果您有正在进行的检索)
  • 单击“高级搜索”

你可以直接向JIRA输入你的查询,举一个完整的例子,进入高级搜索。因为我总是到这个页面进行模糊搜索,所以我保存了这个页面到书签。这个页面提供了很多信息,到这个页面键入“Ctrl + F“并进行检索,直接跳到感兴趣的主题或关键词是很有帮助的。

不懂SQL的人怎么办?

对于不搞技术的用户,JQL对您也来说也是同样的好用。JQL是非常好上手的自然语言,让我们用一个简单的例子来帮助解释一些基本概念。如果你走进一个陌生的杂货店,你可以问别人“我在哪里可以找到三包装的达能饼干?”服务员会带你到正确的货架找到你想要的饼干。JIRA也可以解决同样的问题。

JIRA既有简单搜索也有高级搜索。简单搜索让用户填充一系列表单。高级搜索则是通过使用JQL这种查询语言来实现的。检索是由一系列的简单问题组成的一个更复杂的问题。检索有三个基本部分:字段,运算符和数值。你可以选择使用一些选择关键词把它们连接在一起。接下来让我们讨论每个名词的具体含义,每个名词我都链接了JQL的帮助文档。

字段——含有系统上的不同类型信息。在JIRA中字段可以包含优先性、版本数、问题类型等。

运算符—— 运算符是查询的根本。他们将字段和数值相联系。常见的运算符有等号(=), 不等号 (!=), 小于号 (<)等等。

数值——含有查询的实际数值。他们通常是我们要找的东西。

关键词——关键词是搜索语句中有特定含义的一些词。这篇文章里我们将重点讨论AND和OR。

Screen Shot 2013-04-12 at 3.59.43 PM

如果您使用了连接关键词,在连接词之后应该跟一句字段-运算符-数值的搜索从句。回到刚才的例子,要找到达能牌的三包装饼干,我们要问店员三个问题。

  •     店里的什么东西是达能牌的?
  •     AND 店里的什么东西是饼干?
  •     AND 店里的什么东西是三包装的?

我们可以用下面的视觉维恩图代表查询。我们感兴趣的是三个圆交错的中心区域。

在例子中的第一部分,我们在字段上填入的是公司名称。等于号是运算符。danone是我们查询的值。如果我们想系统地问店员问题,我们可以说:

company = acme AND itemtype="cookie" AND packagequantity = 3

在上面的例子中,查询语句要求公司必须是danone ,东西必须是一个饼干,数量是3。每个条件之间用AND相连接。这意味着AND的左、右边必须同时满足。因为我们想要找到满足所有三个标准的东西所以我们使用关键字AND。你也可以使用OR,这意味着只有一个条件需要满足的。如果你想寻找打折的商品或商店品牌,我们可以使用OR查询。

使用AND将会给你两个圆的交叉区域,OR会给你两个圆全部的部分,我总是只爱用AND,但是有的时候OR也非常有用。使用AND得到的结果会更少,使用OR得到的结果会更多。

让我们回到JIRA吧?

没问题!有效地管理动态项目,需要从和您项目相关的问题跟踪工具中获取一些特定的数据指标。JIRA提供了许多供您查询的字段。单击“字段”链接,您能了解可以从JIRA中挖掘到的数据类型。让我们举一个简单的例子。
昨天John Smith在Pipeline这个项目中记录的是什么bug?
reporter = jsmith AND project = Pipeline
在这个例子中,记录bug的人的信息存储在reporter这个字段里,JIRA有一个项目字段能够匹配问题的关键信息。例如,PIPELINE-2 在 PIPELINE这个项目里。我们可以建立两个条件,并加入AND关键字。
很多时候,你可能想查询得到一组信息。让我们看一个稍微复杂的例子。
 
在项目A,B,C中,什么bug是blocker和critical的?
priority IN (Blocker, Critical) AND project IN (ProjA, ProjB, ProjC)
IN给出包含清单中关键词的所有问题,在上面的例子中,它会返回项目中A,B,C中所有的blocker和critical bug。
最后一天的什么样的问题是未分配的、未被更新的?
assignee IS EMPTY AND created &lt; -1d
在这个查询中,空语句显示了assignee字段值是空白的所有问题。JIRA也支持相对日期。-1d代表在查询日之前的一天。上面的这个查询将会返回所有至少存在一天的没有分配的问题。

在JIRA中输入JQL

JIRA的的JQL编辑器使学习JQL更简单。代码编辑器在您键入给予您提示。对于新用户来说,这将极大地简化了学习曲线,开始使用十分方便。JQL编辑器知道您输入的查询信息,并且给您即时结果。

例如,如果我们想输入下面的JQL语句:

project = Pipeline

JIRA在我们的查询三个组成部分的每一个步骤都给予提示。当你看到你想选择的数值,您可以使用箭头键或鼠标来选择它。

当您输入完毕您的查询语句,JIRA将会验证JQL,文本输入框左边的绿色对号说明您的语法是正确的。

“Syntax Help”将连接到JIRA的语法参考页面。这篇文章只是我们JQL四部曲的第一篇,在以后的博文里我们将讨论:

未来的几周时间我们将给您更多JIRA使用的小贴士,敬请期待哦!想了解更多小贴士?登记可以得到来自我们的JIRA内部邮件。关注我们的新浪微博

点此订阅

 

 

About xiaoyinqu

Xiaoyin Qu, JIRA Marketing team 曲晓音, JIRA市场营销部

View all posts by xiaoyinqu »