Page tree
Skip to end of metadata
Go to start of metadata

本页面介绍有关用于高级搜索的运算符的信息。

JQL 中的运算符是一个或多个符号或单词,它可将其左侧字段 的值与右侧的一个或多个值(或函数)进行比较,使得该子句总是返回比较结果为真值的那些事务。一些运算符可能会使用 NOT 关键字。

EQUALS:=

=”运算符用于搜索指定字段的值与指定值完全匹配的事务。(注意:不能与文本字段配合使用;请改为参见 CONTAINS 运算符。)

要查找指定字段的值与多个值完全匹配的事务,请将多个“=”语句与 AND 运算符配合使用。

示例
  • 查找由 jsmith 创建的所有事务:

    reporter = jsmith
  • 查找由 John Smith 创建的所有事务:

    reporter = "John Smith"

返回页首

运算符列表:

NOT EQUALS:!=

!=”运算符用于搜索指定字段的值与指定值不匹配的事务。(注意:不能与文本字段配合使用;请改为参见 DOES NOT MATCH ("!~") 运算符。)

请注意,键入 field != value 与键入 NOT field = value 等效,键入 field != EMPTY 与键入 field IS_NOT EMPTY 等效。

!=”运算符不能用来匹配没有值的字段(即空白字段)。例如,component != fred 只会与拥有组件组件不是“fred”的事务匹配。要查找拥有除“fred”之外的组件或没有组件的事务,您需要键入:component != fred or component is empty

示例
  • 查找分配给除 jsmith 之外的任意用户的所有事务:

    not assignee = jsmith

    或者:

    assignee != jsmith
  • 查找未分配给 jsmith 的所有事务:

    assignee != jsmith or assignee is empty
  • 查找由我报告但未分配给我的所有事务:

    reporter = currentUser() and assignee != currentUser()
  • 查找报告者或被分派人是除 John Smith 之外的任何人的所有事务:

    assignee != "John Smith" or reporter != "John Smith"
  • 查找状态不是未分派的所有事务:

    assignee is not empty

    或者

    assignee != null

返回页首

GREATER THAN:>

>”运算符用于搜索指定字段的值大于指定值的事务。

请注意,“>”运算符只能与支持排序的字段(如日期字段和版本字段)配合使用,不能与文本字段配合使用。要查看字段支持的运算符,请查看各个字段参考。

示例
  • 查找票数超过 4 张的所有事务:

    votes > 4
  • 查找所有过期事务:

    duedate < now() and resolution is empty
  • 查找优先级高于“Normal”的所有事务:

    priority > normal

返回页首

GREATER THAN EQUALS:>=

>=”运算符用于搜索指定字段的值大于或等于指定值的所有事务。

请注意,“>=”运算符只能与支持排序的字段(如日期字段和版本字段)配合使用,不能与文本字段配合使用。要查看字段支持的运算符,请查看各个字段参考。

示例
  • 查找票数为 4 张或以上的所有事务:

    votes >= 4
  • 查找过期日期为 2008 年 12 月 31 日或之后的所有事务:

    duedate >= "2008/12/31"
  • 查找在过去 5 天内创建的所有事务:

    created >= "-5d"

返回页首

LESS THAN:<

<”运算符用于搜索指定字段的值小于指定值的事务。

请注意,“<”运算符只能与支持排序的字段(如日期字段和版本字段)配合使用,不能与文本字段配合使用。要查看字段支持的运算符,请查看各个字段参考。

示例
  • 查找票数少于 4 张的所有事务:

    votes < 4

返回页首

LESS THAN EQUALS:<=

<=”运算符用于搜索指定字段的值小于或等于指定值的所有事务。

请注意,“<=”运算符只能与支持排序的字段(如日期字段和版本字段)配合使用,不能与文本字段配合使用。要查看字段支持的运算符,请查看各个字段参考。

示例
  • 查找票数为 4 张或更少的所有事务:

    votes <= 4
  • 查找在过去的一个月(30 天)未进行更新的所有事务:

    updated <= "-4w 2d"

返回页首

IN

IN”运算符用于搜索指定字段的值为多个指定值之一的事务。值以逗号分隔的列表进行指定,并用括号括起来。

使用“IN”与使用多个 EQUALS (=) 语句等效,但前者更简短、更方便。也就是说,键入 reporter IN (tom, jane, harry) 与键入 reporter = "tom" OR reporter = "jane" OR reporter = "harry" 等效。

示例
  • 查找由 jsmith、jbrown 或 jjones 创建的所有事务:

    reporter in (jsmith,jbrown,jjones)
  • 查找报告者或被分派人是 Jack 或 Jill 的所有事务:

    reporter in (Jack,Jill) or assignee in (Jack,Jill)
  • 查找版本 3.14 或版本 4.2 中的所有事务:

    affectedVersion in ("3.14", "4.2")

返回页首

NOT IN

NOT IN”运算符用于搜索指定字段的值不为多个指定值之一的事务。

使用“NOT IN”与使用多个 NOT_EQUALS (!=) 语句等效,但前者更简短、更方便。也就是说,键入 reporter NOT IN (tom, jane, harry) 与键入 reporter != "tom" AND reporter != "jane" AND reporter != "harry" 等效。

NOT IN”运算符不能用来匹配没有值的字段(即空白字段)。例如,assignee not in (jack,jill) 只会与拥有被分派人被分派人不是“jack”或“jill”的事务匹配。要查找分配给除“jack”或“jill”之外的其他人或未分配的事务,您需要键入:assignee not in (jack,jill) or assignee is empty

示例
  • 查找被分派人是除 Jack、Jill 或 John 之外的其他人的所有事务:

    assignee not in (Jack,Jill,John)
  • 查找被分派人不是 Jack、Jill 或 John 的所有事务:

    assignee not in (Jack,Jill,John) or assignee is empty
  • 查找修复版本不是“A”、“B”、“C”或“D”的所有事务:

    FixVersion not in (A, B, C, D)
  • 查找修复版本不是“A”、“B”、“C”或“D”或尚未指定修复版本的所有事务:

    FixVersion not in (A, B, C, D) or FixVersion is empty

返回页首

CONTAINS:~

~”运算符用于搜索指定字段的值与指定值匹配的事务(精确匹配或“模糊”匹配 — 请参见以下示例)。只能与文本字段配合使用,即:

  • Summary
  • Description

  • Environment
  • Comments
  • 使用“自由文本搜索器”的自定义字段;这包括以下内置自定义字段类型的自定义字段
    • Free Text Field(无限量文本)
    • Text Field(少于 255 个字符)
    • Read-only Text Field

text ~ "some words" 中的 JQL 字段“text”将搜索事务的“Summary”、“Description”、“Environment”和“Comments”。它还会搜索所有文本自定义字段。如果您有多个文本自定义字段,则可以通过搜索具体的字段(而不是 text)来提高查询的性能,如 

Summary ~ "some words" OR Description ~ "some words"

注意:使用“~”运算符时,可以使用 JIRA 文本搜索语法指定运算符右侧的值。

示例
  • 查找摘要中包含单词“win”(或该单词的简单衍生词,如“wins”)的所有事务:

    summary ~ win
  • 查找摘要中包含单词“win”的通配符匹配的所有事务:

    summary ~ "win*"
  • 查找摘要中包含单词“issue”和单词“collector”的所有事务:

    summary ~ "issue collector"
  • 查找摘要中包含精确短语“full screen”的所有事务(请参见文本字段的搜索语法,了解如何转义引号和其他特殊字符的详细信息):

    summary ~ "\"full screen\""

返回页首

DOES NOT CONTAIN:!~

!~”运算符用于搜索指定字段的值不是指定值的“模糊”匹配的事务。只能与文本字段配合使用,即:

  • Summary
  • Description
  • Environment
  • Comments
  • 使用“自由文本搜索器”的自定义字段;这包括以下内置自定义字段类型的自定义字段
    • Free Text Field(无限量文本)
    • Text Field(少于 255 个字符)
    • Read-only Text Field

text ~ "some words" 中的 JQL 字段“text”将搜索事务的“Summary”、“Description”、“Environment”和“Comments”。它还会搜索所有文本自定义字段。如果您有多个文本自定义字段,则可以通过搜索具体的字段(而不是 text)来提高查询的性能,如 
Summary ~ "some words" OR Description ~ "some words"

注意:使用“!~”运算符时,可以使用 JIRA 文本搜索语法指定运算符右侧的值。

示例
  • 查找摘要中不包含单词“run”(或该单词的衍生词,如“running”或“ran”)的所有事务:

    summary !~ run

返回页首

IS

IS”运算符只能与 EMPTY 或 NULL 配合使用。也就是说,它用于搜索指定字段没有值的事务。

请注意,并非所有字段都与此运算符兼容;请参见各个字段参考,了解详细信息。

示例
  • 查找没有修复版本的所有事务:

    fixVersion is empty

    或者

    fixVersion is null

返回页首

IS NOT

IS NOT”运算符只能与 EMPTY 或 NULL 配合使用。也就是说,它用于搜索指定字段有值的事务。

请注意,并非所有字段都与此运算符兼容;请参见各个字段参考,了解详细信息。

示例
  • 查找票数为 1 张或以上的所有事务:

    votes is not empty

    或者

    votes is not null

返回页首

WAS

WAS”运算符用于查找指定字段在当前或之前具有指定值的事务。

此操作符具有以下可选的谓词:

  • AFTER "date"
  • BEFORE "date"
  • BY "username"
  • DURING ("date1","date2")
  • ON "date"

此操作符将匹配更改字段时您在系统中配置的值的名称(例如“Resolved”)。此操作符还将匹配与值的名称相关联的值 ID,也就是说,它将和“4”以及“Resolved”相匹配。

(注意:此操作符只能用于 Assignee、Fix Version、Priority、Reporter、Resolution 和 Status  字段。)

示例
  • 查找当前具有或之前具有“In Progress”状态的事务:

    status WAS "In Progress"
  • 查找 Joe Smith 在 2 月 2 日之前解决的事务:

    status WAS "Resolved" BY jsmith BEFORE "2011/02/02"
  • 查找 Joe Smith 在 2010 年解决的事务:

    status WAS "Resolved" BY jsmith DURING ("2010/01/01","2011/01/01")

返回页首

WAS IN

WAS IN”运算符用于查找指定字段在当前或之前具有多个指定值中任意一个值的事务。值以逗号分隔的列表进行指定,并用括号括起来。

使用“WAS IN”等同于使用多个WAS语句,但它更简短、方便。也就是说,键入 status WAS IN ('Resolved', 'Closed') 和键入status WAS "Resolved" OR status WAS "Closed" 是一样的。

此操作符具有以下可选的谓词:

  • AFTER "date"
  • BEFORE "date"
  • BY "username"
  • DURING ("date1","date2")
  • ON "date"

此操作符将匹配更改字段时您在系统中配置的值的名称(例如“Resolved”)。此操作符还将匹配与值的名称相关联的值 ID,也就是说,它将和“4”以及“Resolved”相匹配。

(注意:此操作符只能用于 Assignee、Fix Version、Priority、Reporter、Resolution 和 Status  字段。)

示例
  • 找出所有目前或之前的状态是“Resolved”或“In Progress”的事务:

    status WAS IN ("Resolved","In Progress")

返回页首

WAS NOT IN

WAS NOT IN”操作符用于搜索指定字段的值从来都不是多个指定值之一的事务。

使用“WAS NOT IN”等同于使用多个WAS_NOT语句,但它更简短、方便。也就是说,键入 status WAS NOT IN ("Resolved","In Progress") 和键入 status WAS NOT "Resolved" AND status WAS NOT "In Progress".是一样的。

此操作符具有以下可选的谓词 

  • AFTER "date"
  • BEFORE "date"
  • BY "username"
  • DURING ("date1","date2")
  • ON "date"

此操作符将匹配更改字段时您在系统中配置的值的名称(例如“Resolved”)。此操作符还将匹配与值的名称相关联的值 ID,也就是说,它将和“4”以及“Resolved”相匹配。

(注意:此操作符只能用于 Assignee、Fix Version、Priority、Reporter、Resolution 和 Status  字段。)

示例
  • 找出状态一直不是“Resolved”或“In Progress”的事务:

    status WAS NOT IN ("Resolved","In Progress")
  • 找出 2 月 2 日之前状态不是“Resolved”或“In Progress”的事务:

    status WAS NOT IN (&quot;Resolved","In Progress&quot;) BEFORE "2011/02/02"

返回页首

WAS NOT

WAS NOT”操作符用于查找指定字段一直不是指定值的事务。

此操作符具有以下可选的谓词 

  • AFTER "date"
  • BEFORE "date"
  • BY "username"
  • DURING ("date1","date2")
  • ON "date"

此操作符将匹配更改字段时您在系统中配置的值的名称(例如“Resolved”)。此操作符还将匹配与值的名称相关联的值 ID,也就是说,它将和“4”以及“Resolved”相匹配。

(注意:此操作符只能用于 Assignee、Fix Version、Priority、Reporter、Resolution 和 Status  字段。)

示例
  • 找出状态不是以及从来不是“In Progress”的事务:

    status WAS NOT "In Progress"
  • 找出 2 月 2 日之前状态不是“In Progress”的事务:

    status WAS NOT "In Progress" BEFORE "2011/02/02"

返回页首

CHANGED

CHANGED”操作符用于查找指定字段的值曾经更改过的事务。

此操作符具有以下可选的谓词 

  • AFTER "date"
  • BEFORE "date"
  • BY "username"
  • DURING ("date1","date2")
  • ON "date"
  • FROM "oldvalue"
  • TO "newvalue"
示例
  • 找出被分配者已更改的事务:

    assignee CHANGED
  • 找出状态从“In Progress”改回为“Open”的事务:

    status CHANGED FROM "In Progress" TO "Open"
  • 找出在本周开始之后、结束之前,优先级被用户“freddo”更改过的事务。

    priority CHANGED BY freddo BEFORE endOfWeek() AFTER startOfWeek()

返回页首

  • No labels