Documentation for JIRA 5.1.x. Documentation for other versions of JIRA is available too.

What is an Advanced Search?

An advanced search allows you to use structured queries to search for JIRA issues. Your search results will be displayed in the Issue Navigator, where you can export them to MS Excel and many other formats. You can also save and subscribe to your advanced searches if you wish.

When you perform an advanced search, you are using the JIRA Query Language (JQL).

A simple query in JQL (also known as a 'clause') consists of a Advanced Searching#field, followed by an Advanced Searching#operator, followed by one or more values or functions. For example, the following simple query will find all issues in the "TEST" project:

project = "TEST"

(This example uses the Advanced Searching#Project field, the Advanced Searching#EQUALS operator, and the value "TEST".)

Be aware that it is not possible to compare two Advanced Searching#fields.

(info) JQL gives you some SQL-like syntax, such as the ORDER BY SQL keyword and ISNULL() SQL function (i.e. the Advanced Searching#NULL keyword in JQL). However, JQL is not a database query language. For example, JQL does not have a SELECT statement.

How to Perform an Advanced Search

  1. On the top navigation bar, click the "Issues" tab. This will display the Search panel.
  2. Click "advanced". This will display the "Query" box:
  3. Type your query using the Advanced Searching#fields, Advanced Searching#operators and field values or Advanced Searching#functions listed below.
  4. Click the "Search" button to run your query.

On this page:

Keywords Reference

A keyword in JQL is a word or phrase that does (or is) any of the following:

  • joins two or more clauses together to form a complex JQL query
  • alters the logic of one or more clauses
  • alters the logic of Advanced Searching#operators
  • has an explicit definition in a JQL query
  • performs a specific function that alters the results of a JQL query.

^^top of topic

List of keywords:

AND

Used to combine multiple clauses, allowing you to refine your search.

Note that you can use Advanced Searching#parentheses to control the order in which clauses are executed.

Examples
  • Find all open issues in the "New office" project:

    project = "New office" and status = "open"
  • Find all open, urgent issues that are assigned to jsmith:

    status = open and priority = urgent and assignee = jsmith
  • Find all issues in a particular project that are not assigned to jsmith:

    project = JRA and assignee != jsmith
  • Find all issues for a specific release which consists of different version numbers across several projects:

    project in (JRA,CONF) and fixVersion = "3.14"
  • Find all issues where neither the Reporter nor the Assignee is Jack, Jill or John:

    reporter not in (Jack,Jill,John) and assignee not in (Jack,Jill,John)

^top of keywords | ^^top of topic

OR

Used to combine multiple clauses, allowing you to expand your search.

Note that you can use Advanced Searching#parentheses to control the order in which clauses are executed.

(Note: also see Advanced Searching#IN, which can be a more convenient way to search for multiple values of a field.)

Examples
  • Find all issues that were created by either jsmith or jbrown:

    reporter = jsmith or reporter = jbrown
  • Find all issues that are overdue or where no due date is set:

    duedate < now() or duedate is empty

^top of keywords | ^^top of topic

NOT

Used to negate individual clauses or a complex JQL query (a query made up of more than one clause) using Advanced Searching#parentheses, allowing you to refine your search.

(Note: also see NOT EQUALS ("!="), DOES NOT CONTAIN ("!~"), NOT IN and IS NOT.)

Examples
  • Find all issues that are assigned to any user except jsmith:

    not assignee = jsmith
  • Find all issues that were not created by either jsmith or jbrown:

    not (reporter = jsmith or reporter = jbrown)

^top of keywords | ^^top of topic

EMPTY

Used to search for issues where a given field does not have a value. See also Advanced Searching#NULL.

Note that EMPTY can only be used with fields that support the Advanced Searching#IS and IS NOT operators. To see a field's supported operators, check the individual Advanced Searching#field reference.

Examples

^top of keywords | ^^top of topic

NULL

Used to search for issues where a given field does not have a value. See also Advanced Searching#EMPTY.

Note that NULL can only be used with fields that support the Advanced Searching#IS and IS NOT operators. To see a field's supported operators, check the individual Advanced Searching#field reference.

Examples

^top of keywords | ^^top of topic

ORDER BY

Used to specify the fields by whose values the search results will be sorted.

By default, the field's own sorting order will be used. You can override this by specifying ascending order ("asc") or descending order ("desc").

Examples

Ordering by Components or Versions will list the returned issues first by Project and only then by the field's natural order (see JRA-31113).

^top of keywords | ^^top of topic

Operators Reference

An operator in JQL is one or more symbols or words which compares the value of a Advanced Searching#field on its left with one or more values (or functions) on its right, such that only true results are retrieved by the clause. Some operators may use the Advanced Searching#NOT keyword.

^^top of topic

List of Operators:

EQUALS: =

The "=" operator is used to search for issues where the value of the specified field exactly matches the specified value. (Note: cannot be used with Advanced Searching#text fields; see the Advanced Searching#CONTAINS operator instead.)

To find issues where the value of a specified field exactly matches multiple values, use multiple "=" statements with the Advanced Searching#AND operator.

Examples
  • Find all issues that were created by jsmith:

    reporter = jsmith
  • Find all issues that were created by John Smith:

    reporter = "John Smith"

^top of operators | ^^top of topic

NOT EQUALS: !=

The "!=" operator is used to search for issues where the value of the specified field does not match the specified value. (Note: cannot be used with Advanced Searching#text fields; see the DOES NOT MATCH ("!~") operator instead.)

Note that typing field != value is the same as typing NOT field = value, and that field != EMPTY is the same as field Advanced Searching#IS_NOT EMPTY.

The "!=" operator will not match a field that has no value (i.e. a field that is empty). For example, component != fred will only match issues that have a component and the component is not "fred". To find issues that have a component other than "fred" or have no component, you would need to type: component != fred or component is empty.

Examples
  • Find all issues that are assigned to any user except jsmith:

    not assignee = jsmith

    or:

    assignee != jsmith
  • Find all issues that are not assigned to jsmith:

    assignee != jsmith or assignee is empty
  • Find all issues that were reported by me but are not assigned to me:

    reporter = currentUser() and assignee != currentUser()
  • Find all issues where the Reporter or Assignee is anyone except John Smith:

    assignee != "John Smith" or reporter != "John Smith"
  • Find all issues that are not unassigned:

    assignee is not empty

    or

    assignee != null

^top of operators | ^^top of topic

GREATER THAN: >

The ">" operator is used to search for issues where the value of the specified field is greater than the specified value. Cannot be used with Advanced Searching#text fields.

Note that the ">" operator can only be used with fields which support ordering (e.g. date fields and version fields). To see a field's supported operators, check the individual Advanced Searching#field reference.

Examples
  • Find all issues with more than 4 votes:

    votes > 4
  • Find all overdue issues:

    duedate < now() and resolution is empty
  • Find all issues where priority is higher than "Normal":

    priority > normal

^top of operators | ^^top of topic

GREATER THAN EQUALS: >=

The ">=" operator is used to search for issues where the value of the specified field is greater than or equal to the specified value. Cannot be used with Advanced Searching#text fields.

Note that the ">=" operator can only be used with fields which support ordering (e.g. date fields and version fields). To see a field's supported operators, check the individual Advanced Searching#field reference.

Examples
  • Find all issues with 4 or more votes:

    votes >= 4
  • Find all issues due on or after 31/12/2008:

    duedate >= "2008/12/31"
  • Find all issues created in the last five days:

    created >= "-5d"

^top of operators | ^^top of topic

LESS THAN: <

The "<" operator is used to search for issues where the value of the specified field is less than the specified value. Cannot be used with Advanced Searching#text fields.

Note that the "<" operator can only be used with fields which support ordering (e.g. date fields and version fields). To see a field's supported operators, check the individual Advanced Searching#field reference.

Examples
  • Find all issues with less than 4 votes:

    votes < 4

^top of operators | ^^top of topic

LESS THAN EQUALS: <=

The "<=" operator is used to search for issues where the value of the specified field is less than or equal to than the specified value. Cannot be used with Advanced Searching#text fields.

Note that the "<=" operator can only be used with fields which support ordering (e.g. date fields and version fields). To see a field's supported operators, check the individual Advanced Searching#field reference.

Examples
  • Find all issues with 4 or fewer votes:

    votes <= 4
  • Find all issues that have not been updated in the past month (30 days):

    updated <= "-4w 2d"

^top of operators | ^^top of topic

IN

The "IN" operator is used to search for issues where the value of the specified field is one of multiple specified values. The values are specified as a comma-delimited list, surrounded by parentheses.

Using "IN" is equivalent to using multiple Advanced Searching#EQUALS (=) statements, but is shorter and more convenient. That is, typing reporter IN (tom, jane, harry) is the same as typing reporter = "tom" Advanced Searching#OR reporter = "jane" Advanced Searching#OR reporter = "harry".

Examples
  • Find all issues that were created by either jsmith or jbrown or jjones:

    reporter in (jsmith,jbrown,jjones)
  • Find all issues where the Reporter or Assignee is either Jack or Jill:

    reporter in (Jack,Jill) or assignee in (Jack,Jill)
  • Find all issues in version 3.14 or version 4.2:

    affectedVersion in ("3.14", "4.2")

^top of operators | ^^top of topic

NOT IN

The "NOT IN" operator is used to search for issues where the value of the specified field is not one of multiple specified values.

Using "NOT IN" is equivalent to using multiple Advanced Searching#NOT_EQUALS (!=) statements, but is shorter and more convenient. That is, typing reporter NOT IN (tom, jane, harry) is the same as typing reporter != "tom" Advanced Searching#AND reporter != "jane" Advanced Searching#AND reporter != "harry".

The "NOT IN" operator will not match a field that has no value (i.e. a field that is empty). For example, assignee not in (jack,jill) will only match issues that have an assignee and the assignee is not "jack" or "jill". To find issues that are assigned to someone other than "jack" or "jill" or are unassigned, you would need to type: assignee not in (jack,jill) or assignee is empty.

Examples
  • Find all issues where the Assignee is someone other than Jack, Jill or John:

    assignee not in (Jack,Jill,John)
  • Find all issues where the Assignee is not Jack, Jill or John:

    assignee not in (Jack,Jill,John) or assignee is empty
  • Find all issues where the FixVersion is not 'A', 'B', 'C' or 'D':

    FixVersion not in (A, B, C, D)
  • Find all issues where the FixVersion is not 'A', 'B', 'C' or 'D', or has not been specified:

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

^top of operators | ^^top of topic

CONTAINS: ~

The "~" operator is used to search for issues where the value of the specified field matches the specified value (either an exact match or a "fuzzy" match — see examples below). For use with text fields only, i.e.:

Note: when using the "~" operator, the value on the right-hand side of the operator can be specified using JIRA text-search syntax.

Examples
  • Find all issues where the Summary contains the word "win" (or simple derivatives of that word, such as "wins"):

    summary ~ win
  • Find all issues where the Summary contains a wild-card match for the word "win":

    summary ~ "win*"
  • Find all issues where the Summary contains the exact phrase "full screen" (see Reserved Characters for details on how to escape quote-marks and other special characters):

    summary ~ "\"full screen\""

^top of operators | ^^top of topic

DOES NOT CONTAIN: !~

The "!~" operator is used to search for issues where the value of the specified field is not a "fuzzy" match for the specified value. For use with text fields only, i.e.:

Note: when using the "!~" operator, the value on the right-hand side of the operator can be specified using JIRA text-search syntax.

Examples
  • Find all issues where the Summary does not contain the word "run" (or derivatives of that word, such as "running" or "ran"):

    summary !~ run

^top of operators | ^^top of topic

IS

The "IS" operator can only be used with Advanced Searching#EMPTY or Advanced Searching#NULL. That is, it is used to search for issues where the specified field has no value.

Note that not all Advanced Searching#fields are compatible with this operator; see the individual Advanced Searching#field reference for details.

Examples
  • Find all issues that have no Fix Version:

    fixVersion is empty

    or

    fixVersion is null

^top of operators | ^^top of topic

IS NOT

The "IS NOT" operator can only be used with Advanced Searching#EMPTY or Advanced Searching#NULL. That is, it is used to search for issues where the specified field has a value.

Note that not all Advanced Searching#fields are compatible with this operator; see the individual Advanced Searching#field reference for details.

Examples
  • Find all issues that have one or more votes:

    votes is not empty

    or

    votes is not null

^top of operators | ^^top of topic

WAS

The "WAS" operator is used to find issues that currently have, or previously had, the specified value for the specified field.

This operator has the following optional predicates:
  • AFTER "date"
  • BEFORE "date"
  • BY "username"
  • DURING ("date1","date2")
  • ON "date"
This operator will match the value name (e.g. "Resolved"), which was configured in your system at the time that the field was changed. This operator will also match the value ID associated with that value name too — that is, it will match "4" as well as "Resolved".

(Note: This operator can be used with the Assignee, Fix Version, PriorityReporter, Resolution and Status fields only.)

Examples
  • Find issues that currently have, or previously had, a status of 'In Progress':

    status WAS "In Progress"
  • Find issues that were resolved by Joe Smith before 2nd February:

    status WAS "Resolved" BY jsmith BEFORE "02/02/2011"
  • Find issues that were resolved by Joe Smith during 2010:

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

^top of operators | ^^top of topic

WAS IN

The "WAS IN" operator is used to find issues that currently have, or previously had, any of multiple specified values for the specified field. The values are specified as a comma-delimited list, surrounded by parentheses.

Using "WAS IN" is equivalent to using multiple Advanced Searching#WAS statements, but is shorter and more convenient. That is, typing status WAS IN ('Resolved', 'Closed') is the same as typing status WAS "Resolved" Advanced Searching#OR status WAS "Closed".

This operator has the following optional predicates:
  • AFTER "date"
  • BEFORE "date"
  • BY "username"
  • DURING ("date1","date2")
  • ON "date"
This operator will match the value name (e.g. "Resolved"), which was configured in your system at the time that the field was changed. This operator will also match the value ID associated with that value name too — that is, it will match "4" as well as "Resolved".

(Note: This operator can be used with the Assignee, Fix Version, PriorityReporter, Resolution and Status fields only.)

Examples
  • Find all issues that currently have, or previously had, a status of 'Resolved' or 'In Progress':

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

^top of operators | ^^top of topic

WAS NOT IN

The "WAS NOT IN" operator is used to search for issues where the value of the specified field has never been one of multiple specified values.

Using "WAS NOT IN" is equivalent to using multiple Advanced Searching#WAS_NOT statements, but is shorter and more convenient. That is, typing status WAS NOT IN ("Resolved","In Progress") is the same as typing status WAS NOT "Resolved" Advanced Searching#AND status WAS NOT "In Progress".

This operator has the following optional predicates:
  • AFTER "date"
  • BEFORE "date"
  • BY "username"
  • DURING ("date1","date2")
  • ON "date"
This operator will match the value name (e.g. "Resolved"), which was configured in your system at the time that the field was changed. This operator will also match the value ID associated with that value name too — that is, it will match "4" as well as "Resolved".

(Note: This operator can be used with the Assignee, Fix Version, PriorityReporter, Resolution and Status fields only.)

Examples
  • Find issues that have never had a status of 'Resolved' or 'In Progress':

    status WAS NOT IN ("Resolved","In Progress")
  • Find issues that did not have a status of 'Resolved' or 'In Progress' before 2nd February:

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

^top of operators | ^^top of topic

WAS NOT

The "WAS NOT" operator is used to find issues that have never had the specified value for the specified field.

This operator has the following optional predicates:
  • AFTER "date"
  • BEFORE "date"
  • BY "username"
  • DURING ("date1","date2")
  • ON "date"
This operator will match the value name (e.g. "Resolved"), which was configured in your system at the time that the field was changed. This operator will also match the value ID associated with that value name too — that is, it will match "4" as well as "Resolved".

(Note: This operator can be used with the Assignee, Fix Version, PriorityReporter, Resolution and Status fields only.)

Examples
  • Find issues that do not have, and has never had, a status of 'In Progress':

    status WAS NOT "In Progress"
  • Find issues that did not have a status of 'In Progress' before 2nd February:

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

^top of operators | ^^top of topic

CHANGED

The "CHANGED" operator is used to find issues that have a value which had changed for the specified field.

This operator has the following optional predicates:

  • AFTER "date"
  • BEFORE "date"
  • BY "username"
  • DURING ("date1","date2")
  • ON "date"
  • FROM "oldvalue"
  • TO "newvalue"
Examples
  • Find issues whose assignee had changed:

    assignee CHANGED
  • Find issues whose status had changed from 'In Progress' back to 'Open':

    status CHANGED FROM "In Progress" TO "Open"
  • Find issues whose priority was changed by user 'freddo' after the start and before the end of the current week.

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

^top of operators | ^^top of topic

Fields Reference

A field in JQL is a word that represents a JIRA field (or a custom field that has already been defined in JIRA). In a clause, a field is followed by an Advanced Searching#operator, which in turn is followed by one or more values (or functions). The operator compares the value of the field with one or more values or functions on the right, such that only true results are retrieved by the clause.

^^top of topic

List of Fields:

Affected Version

Search for issues that are assigned to a particular Affects Version(s). You can search by version name or version ID (i.e. the number that JIRA automatically allocates to a version).

It is safer to search by version ID than by version name

Different projects may have versions with the same name, so searching by version name may return issues from multiple projects. It is also possible for your JIRA administrator to change the name of a version, which could break any saved filters which rely on that name. Version IDs, however, are unique and cannot be changed.

Note: this field supports Advanced Searching#auto-complete.

Syntax
affectedVersion
Field Type

VERSION

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)

Note that the comparison operators (e.g. ">") use the version order that has been set up by your project administrator, not a numeric or alphabetic order.

Supported Functions
When used with the IN and NOT IN operators, this field supports:
Examples
  • Find issues with an AffectedVersion of 3.14:

    affectedVersion = "3.14"

    (Note that full-stops are reserved Advanced Searching#characters, so they need to be surrounded by quote marks.)

  • Find issues with an AffectedVersion of "Big Ted":

    affectedVersion = "Big Ted"
  • Find issues with an AffectedVersion ID of 10350:

    affectedVersion = 10350

^top of fields | ^^top of topic

Assignee

Search for issues that are assigned to a particular user. You can search by the user's Full Name, ID or Email Address.

Note: this field supports Advanced Searching#auto-complete.

Syntax
assignee
Field Type

USER

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)
Supported Functions
When used with the IN and NOT IN operators, this field supports:

When used with the EQUALS and NOT EQUALS operators, this field supports:

Examples
  • Find issues that are assigned to John Smith:

    assignee = "John Smith"

    or

    assignee = jsmith
  • Find issues that are currently assigned, or were previously assigned, to John Smith:

     assignee WAS "John Smith"

    or

     assignee WAS jsmith
  • Find issues that are assigned by the user with email address "bob@mycompany.com":

    assignee = "bob@mycompany.com"

    (Note that full-stops and "@" symbols are reserved Advanced Searching#characters, so the email address needs to be surrounded by quote-marks.)

^top of fields | ^^top of topic

Category

Search for issues that belong to projects in a particular Category.

Note: this field supports Advanced Searching#auto-complete.

Syntax
category
Field Type

CATEGORY

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Supported Functions

n/a

Examples
  • Find issues that belong to projects in the "Alphabet Projects" Category:

     category = "Alphabet Projects"

^top of fields | ^^top of topic

Comment

Search for issues that have a Comment which contains particular text.

JIRA text-search syntax can be used.

Note: this field does not support Advanced Searching#auto-complete.

Syntax
comment
Field Type

TEXT

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)
Supported Functions

n/a

Examples
  • Find issues where a Comment contains text that matches "My PC is quite old" (i.e. a "fuzzy" match:

    comment ~ "My PC is quite old"
  • Find issues where a Comment contains the exact phrase "My PC is quite old":

    comment ~ "\"My PC is quite old\""

^top of fields | ^^top of topic

Component

Search for issues that belong to a particular component(s) of a project. You can search by component name or component ID (i.e. the number that JIRA automatically allocates to a component).

It is safer to search by component ID than by component name

Different projects may have components with the same name, so searching by component name may return issues from multiple projects. It is also possible for your JIRA administrator to change the name of a component, which could break any saved filters which rely on that name. Component IDs, however, are unique and cannot be changed.

Note: this field supports Advanced Searching#auto-complete.

Syntax
component
Field Type

COMPONENT

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Supported Functions

When used with the Advanced Searching#IN and NOT IN operators, component supports:

Examples
  • Find issues in the "Comp1" or "Comp2" component:

     component in (Comp1, Comp2)
  • Find issues in the "Comp1" and"Comp2" components:

     component in (Comp1) and component in (Comp2)

    or

     component = Comp1 and component = Comp2
  • Find issues in the component with ID 20500:

    component = 20500

^top of fields | ^^top of topic

Created

Search for issues that were created on, before or after a particular date (or date range). Note that if a time-component is not specified, midnight will be assumed. Please note that the search results will be relative to your configured time zone (which is by default the JIRA server's time zone).

Use one of the following formats:

"yyyy/MM/dd HH:mm"
"yyyy-MM-dd HH:mm"
"yyyy/MM/dd"
"yyyy-MM-dd"

Or use "w" (weeks), "d" (days), "h" (hours) or "m" (minutes) to specify a date relative to the current time. The default is "m" (minutes). Be sure to use quote-marks ("); if you omit the quote-marks, the number you supply will be interpreted as milliseconds after epoch (1970-1-1).

Note: this field does not support Advanced Searching#auto-complete.

Syntax
created

Alias:

createdDate
Field Type

DATE

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Supported Functions
Examples
  • Find all issues created before 12th December 2010:

    created < "2010/12/12"
  • Find all issues created on or before 12th December 2010:

    created <= "2010/12/13"
  • Find all issues created on 12th December 2010 before 2:00pm:

    created > "2010/12/12" and created < "2010/12/12 14:00"
  • Find issues created less than one day ago:

    created > "-1d"
  • Find issues created in January 2011:

    created > "2011/01/01" and created < "2011/02/01"
  • Find issues created on 15 January 2011:

    created > "2011/01/15" and created < "2011/01/16"

^top of fields | ^^top of topic

Custom Field

Only applicable if your JIRA administrator has created one or more Custom Fields.

Search for issues where a particular Custom Field has a particular value.

You can search by Custom Field name or Custom Field ID (i.e. the number that JIRA automatically allocates to an Custom Field).

It is safer to search by Custom Field ID than by Custom Field name

It is possible for a Custom Field to have the same name as a built-in JIRA system field, in which case JIRA will search on the system field (not your custom field). It is also possible for your JIRA administrator to change the name of a Custom Field, which could break any saved filters which rely on that name. Custom Field IDs, however, are unique and cannot be changed.

Note:

Syntax
CustomFieldName

Alias:

cf[CustomFieldID]
Field Type

Depends on the Custom Field's configuration

Supported Operators

Different types of Custom Fields support different Advanced Searching#operators. For the default Custom Field Types, the following operators are supported:

  • Number and date/time fields:

    =

    !=

    ~

    !~

    >

    >=

    <

    <=

    IS

    IS NOT

    IN

    NOT IN

    WAS

    WAS IN

    WAS NOT

    WAS NOT IN

    CHANGED

    (tick)

    (tick)

    (error)

    (error)

    (tick)

    (tick)

    (tick)

    (tick)

    (tick)

    (tick)

    (tick)

    (tick)

    (error)

    (error)

    (error)

    (error)

    (error)
  • Picker, select, check-box and radio button fields:

    =

    !=

    ~

    !~

    >

    >=

    <

    <=

    IS

    IS NOT

    IN

    NOT IN

    WAS

    WAS IN

    WAS NOT

    WAS NOT IN

    CHANGED

    (tick)

    (tick)

    (error)

    (error)

    (error)

    (error)

    (error)

    (error)

    (tick)

    (tick)

    (tick)

    (tick)

    (error)

    (error)

    (error)

    (error)

    (error)
  • Text fields:

    =

    !=

    ~

    !~

    >

    >=

    <

    <=

    IS

    IS NOT

    IN

    NOT IN

    WAS

    WAS IN

    WAS NOT

    WAS NOT IN

    CHANGED

    (error)

    (error)

    (tick)

    (tick)

    (error)

    (error)

    (error)

    (error)

    (tick)

    (tick)

    (error)

    (error)

    (error)

    (error)

    (error)

    (error)

    (error)
Supported Functions

Different types of Custom Fields support different Advanced Searching#functions. For the default Custom Field Types, the following functions are supported:

Examples
  • Find issues where the value of the "Location" Custom Field is "New York":

    location = "New York"
  • Find issues where the value of the Custom Field with ID 10003 is "New York":

    cf[10003] = "New York"
  • Find issues where the value of the "Location" Custom Field is "London" or "Milan" or "Paris":

    cf[10003] in ("London", "Milan", "Paris")
  • Find issues where the "Location" Custom Field has no value:

    location != empty

^top of fields | ^^top of topic

Description

Search for issues where the Description contains particular text.

JIRA text-search syntax can be used.

Note: this field does not support Advanced Searching#auto-complete.

Syntax
description
Field Type

TEXT

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)

(error)

(error)
Supported Functions

n/a

Examples
  • Find issues where the Description contains text that matches "Please see screenshot" (i.e. a "fuzzy" match):

    description ~ "Please see screenshot"
  • Find issues where the Description contains the exact phrase "Please see screenshot":

    description ~ "\"Please see screenshot\""

^top of fields | ^^top of topic

Due

Search for issues that were due on, before or after a particular date (or date range). Note that Due Date relates to the date only (not to the time).

Use one of the following formats:

"yyyy/MM/dd"
"yyyy-MM-dd"

Or use "w" (weeks) or "d" (days) to specify a date relative to the current date. Be sure to use quote-marks (").

Note: this field does not support Advanced Searching#auto-complete.

Syntax
due

Alias:

dueDate
Field Type

DATE

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Supported Functions
Examples
  • Find all issues due before 31st December 2010:

    due < "2010/12/31"
  • Find all issues due on or before 31st December 2010:

    due <= "2011/01/01"
  • Find all issues due tomorrow:

    due = "1d"
  • Find all issues due in January 2011:

    due >= "2011/01/01" and due <= "2011/01/31"
  • Find all issues due on 15 January 2011:

    due = "2011/01/15"

^top of fields | ^^top of topic

Environment

Search for issues where the Environment contains particular text.

JIRA text-search syntax can be used.

Note: this field does not support Advanced Searching#auto-complete.

Syntax
environment
Field Type

TEXT

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)

(error)

(error)
Supported Functions

n/a

Examples
  • Find issues where the Environment contains text that matches "Third floor" (i.e. a "fuzzy" match):

    environment ~ "Third floor"
  • Find issues where the Environment contains the exact phrase "Third floor":

    environment ~ "\"Third floor\""

^top of fields | ^^top of topic

Filter

You can use a saved filter to narrow your search. You can search by filter name or filter ID (i.e. the number that JIRA automatically allocates to a saved filter).

It is safer to search by filter ID than by filter name

It is possible for a filter name to be changed, which could break a saved filter that invokes another filter by name. Filter IDs, however, are unique and cannot be changed.

Note:

  • An Advanced Searching statement in your typed query will override an ORDER BY statement in the saved filter.
  • You cannot run or save a filter that would cause an infinite loop (i.e. you cannot reference a saved filter if it eventually references your current filter).
  • This field supports Advanced Searching#auto-complete.
    Syntax
    filter

    Aliases:

    request
    savedFilter
    searchRequest
Field Type

FILTER

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Supported Functions

n/a

Examples
  • Search the results of the filter "My Saved Filter" (which has an ID of 12000) for issues assigned to the user jsmith:

    filter = "My Saved Filter" and assignee = jsmith

    or

    filter = 12000 and assignee = jsmith

^top of fields | ^^top of topic

Fix Version

Search for issues that are assigned to a particular Fix Version. You can search by version name or version ID (i.e. the number that JIRA automatically allocates to a version).

It is safer to search by version ID than by version name

Different projects may have versions with the same name, so searching by version name may return issues from multiple projects. It is also possible for your JIRA administrator to change the name of a version, which could break any saved filters that rely on that name. Version IDs, however, are unique and cannot be changed.

Note: this field supports Advanced Searching#auto-complete.

Syntax
fixVersion
Field Type

VERSION

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

Note that the comparison operators (e.g. ">") use the version order that has been set up by your project administrator, not a numeric or alphabetic order.

Supported Functions
When used with the IN and NOT IN operators, this field supports:
Examples
  • Find issues with a Fix Version of 3.14 or 4.2:

     fixVersion in ("3.14", "4.2")

    (Note that full-stops are reserved Advanced Searching#characters, so they need to be surrounded by quote marks.)

  • Find issues with a Fix Version of "Little Ted":

    fixVersion = "Little Ted"
  • Find issues with a Fix Version ID of 10001:

    fixVersion = 10001

^top of fields | ^^top of topic

Issue Key

Search for issues with a particular Issue Key or Issue ID (i.e. the number that JIRA automatically allocates to an Issue).

Note: this field does not support Advanced Searching#auto-complete.

Syntax
issueKey

Aliases:

id
issue
key
Field Type

ISSUE

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Supported Functions

When used with the Advanced Searching#IN or NOT IN operators, issueKey supports:

Examples
  • Find the issue with key "ABC-123":

    issueKey = ABC-123 

^top of fields | ^^top of topic

Level

Only available if Issue Level Security has been enabled by your JIRA administrator.

Search for issues with a particular Security Level. You can search by Issue Security Level name or Issue Security Level ID (i.e. the number that JIRA automatically allocates to an Issue Security Level).

It is safer to search by Security Level ID than by Security Level name

It is possible for your JIRA administrator to change the name of a Security Level, which could break any saved filter which rely on that name. Security Level IDs, however, are unique and cannot be changed.

Note: this field supports Advanced Searching#auto-complete.

Syntax
level
Field Type

SECURITY LEVEL

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Supported Functions

n/a

Examples
  • Search for issues with a Security Level of "Really High" or "level1":

    level in ("Really High", level1)
  • Search for issues with a Security Level ID of 123:

    level = 123

^top of fields | ^^top of topic

Original Estimate

Only available if time-tracking has been enabled by your JIRA administrator.

Search for issues where the Original Estimate is set to a particular value (i.e. a number, not a date or date range).

Use "w", "d", "h" and "m" to specify weeks, days, hours or minutes.

Note: this field does not support Advanced Searching#auto-complete.

Syntax
originalEstimate

Alias:

timeOriginalEstimate
Field Type

DURATION

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Supported Functions

n/a

Examples
  • Find issues with an Original Estimate of 1 hour:

    originalEstimate = 1h
  • Find issues with an Original Estimate of more than 2 days:

    originalEstimate > 2d

^top of fields | ^^top of topic

Parent

Only available if sub-tasks have been enabled by your JIRA administrator.

Search for all sub-tasks of a particular issue. You can search by Issue Key or by Issue ID (i.e. the number that JIRA automatically allocates to an Issue).

Note: this field does not support Advanced Searching#auto-complete.

Syntax
parent
Field Type

ISSUE

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Supported Functions

n/a

Examples
  • Find issues that are sub-tasks of issue TEST-1234:

    parent = TEST-1234

^top of fields | ^^top of topic

Priority

Search for issues with a particular Priority. You can search by Priority name or Priority ID (i.e. the number that JIRA automatically allocates to a Priority).

It is safer to search by Priorty ID than by Priority name

It is possible for your JIRA administrator to change the name of a Priority, which could break any saved filter which rely on that name. Priority IDs, however, are unique and cannot be changed.

Note: this field supports Advanced Searching#auto-complete.

Syntax
priority
Field Type

PRIORITY

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)
Supported Functions

n/a

Examples
  • Find issues with a Priority of "High":

     priority = High
  • Find issues with a Priority ID of 10000:

    priority = 10000

^top of fields | ^^top of topic

Project

Search for issues that belong to a particular Project.

You can search by Project Name, by Project Key or by Project ID (i.e. the number that JIRA automatically allocates to a project).

Note: this field supports Advanced Searching#auto-complete.

Syntax
project
Field Type

PROJECT

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Supported Functions

When used with the Advanced Searching#IN and NOT IN operators, project supports:

Examples
  • Find issues that belong to the Project that has the name "ABC Project":

     project = "ABC Project" 
  • Find issues that belong to the Project that has the key "ABC":

    project = "ABC"
  • Find issues that belong to the Project that has the ID "1234":

    project = 1234

^top of fields | ^^top of topic

Remaining Estimate

Only available if time-tracking has been enabled by your JIRA administrator.

Search for issues where the Remaining Estimate is set to a particular value (i.e. a number, not a date or date range).

Use "w", "d", "h" and "m" to specify weeks, days, hours or minutes.

Note: this field does not support Advanced Searching#auto-complete.

Syntax
remainingEstimate

Alias:

timeEstimate
Field Type

DURATION

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Supported Functions

n/a

Examples
  • Find issues with a Remaining Estimate of more than 4 hours:

     remainingEstimate > 4h 

^top of fields | ^^top of topic

Reporter

Search for issues that were reported by (i.e. created by) a particular user.

You can search by the user's Full Name, ID or Email Address.

Note: this field supports Advanced Searching#auto-complete.

Syntax
reporter
Field Type

USER

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)
Supported Functions
When used with the IN and NOT IN operators, this field supports:

When used with the EQUALS and NOT EQUALS operators, this field supports:

Examples
  • Search for issues that were created by Jill Jones:

    reporter = "Jill Jones"

    or

    reporter = jjones
  • Search for issues that were created by the user with email address "bob@mycompany.com":

    assignee = "bob@mycompany.com"

    (Note that full-stops and "@" symbols are reserved Advanced Searching#characters, so the email address needs to be surrounded by quote-marks.)

^top of fields | ^^top of topic

Resolution

Search for issues that have a particular Resolution

You can search by Resolution name or Resolution ID (i.e. the number that JIRA automatically allocates to a Resolution).

It is safer to search by Resolution ID than Resolution name

It is possible for your JIRA administrator to change the name of a Resolution, which could break any saved filter which rely on that name. Resolution IDs, however, are unique and cannot be changed.

Note: this field supports Advanced Searching#auto-complete.

Syntax
resolution
Field Type

RESOLUTION

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)
Supported Functions

n/a

Examples
  • Find issues with a Resolution of "Cannot Reproduce" or "Won't Fix":

     resolution in ("Cannot Reproduce", "Won't Fix")
  • Find issues with a Resolution ID of 5:

    resolution = 5
  • Find issues that do not have a Resolution:

    resolution = unresolved

^top of fields | ^^top of topic

Resolved

Search for issues that were resolved on, before or after a particular date (or date range). Note that if a time-component is not specified, midnight will be assumed. Please note that the search results will be relative to your configured time zone (which is by default the JIRA server's time zone).

Use one of the following formats:

"yyyy/MM/dd HH:mm"
"yyyy-MM-dd HH:mm"
"yyyy/MM/dd"
"yyyy-MM-dd"

Or use "w" (weeks), "d" (days), "h" (hours) or "m" (minutes) to specify a date relative to the current time. The default is "m" (minutes). Be sure to use quote-marks ("); if you omit the quote-marks, the number you supply will be interpreted as milliseconds after epoch (1970-1-1).

Note: this field does not support Advanced Searching#auto-complete.

Syntax
resolved

Alias:

resolutionDate
Field Type

DATE

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Supported Functions

Examples
  • Find all issues that were resolved before 31st December 2010:

    resolved <= "2010/12/31"
  • Find all issues that were resolved before 2.00pm on 31st December 2010:

    resolved < "2010/12/31 14:00"
  • Find all issues that were resolved on or before 31st December 2010:

    resolved <= "2011/01/01"
  • Find issues that were resolved in January 2011:

    resolved > "2011/01/01" and resolved < "2011/02/01"
  • Find issues that were resolved on 15 January 2011:

    resolved > "2011/01/15" and resolved < "2011/01/16"
  • Find issues that were resolved in the last hour:

    resolved > -1h

^top of fields | ^^top of topic

 

Sprint

(info) Only available if you are using GreenHopper.

Search for issues that are assigned to a particular sprint in GreenHopper. The search is based on the sprint ID (i.e. the number that JIRA automatically allocates to a sprint).

Syntax
sprint
Field Type

Number

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Supported Functions
Examples
  • Find issues that belong to sprint 999:

    sprint = 999
  • Find issues that belong to either sprint 1, sprint 3 or sprint 4:

    sprint in (1,3,4)
  • Find issues that are assigned to a sprint:

    sprint is not empty

^top of fields | ^^top of topic

 

Status

Search for issues that have a particular Status.

You can search by Status name or Status ID (i.e. the number that JIRA automatically allocates to a Status).

It is safer to search by Status ID than Status name

It is possible for your JIRA administrator to change the name of a Status, which could break any saved filter which rely on that name. Status IDs, however, are unique and cannot be changed.

Please note, though, that the Advanced Searching#WAS, Advanced Searching#WAS_NOT, Advanced Searching#WAS_IN and Advanced Searching#WAS_NOT_IN operators can only be used with the name (not the ID).

Note: this field supports Advanced Searching#auto-complete.

Syntax
status
Field Type

STATUS

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)
Supported Functions

n/a

Examples
  • Find issues with a Status of "Open":

     status = Open
  • Find issues with a Status ID of 1:

    status = 1
  • Find issues that currently have, or previously had, a Status of "Open":

     status WAS Open

^top of fields | ^^top of topic

Summary

Search for issues where the Summary contains particular text.

JIRA text-search syntax can be used.

Note: this field does not support Advanced Searching#auto-complete.

Syntax
summary
Field Type

TEXT

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)

(error)

(error)
Supported Functions

n/a

Examples
  • Find issues where the Summary contains text that matches "Error saving file" (i.e. a "fuzzy" match):

    summary ~ "Error saving file"
  • Find issues where the Summary contains the exact phrase "Error saving file":

    summary ~ "\"Error saving file\""

^top of fields | ^^top of topic

Text

This is a "master-field" that allows you to search all text fields, i.e.:

Notes:

Syntax
text
Field Type

TEXT

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(error)

(error)

(tick)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)
Supported Functions

n/a

Examples
  • Find issues where a text field matches the word "Fred":

    text ~ "Fred"

    or

    text ~ Fred
  • Find all issues where a text field contains the exact phrase "full screen":

    text ~ "\"full screen\""

^top of fields | ^^top of topic

Type

Search for issues that have a particular Issue Type.

You can search by Issue Type name or Issue Type ID (i.e. the number that JIRA automatically allocates to an Issue Type).

It is safer to search by Type ID than Type name

It is possible for your JIRA administrator to change the name of a Type, which could break any saved filter which rely on that name. Type IDs, however, are unique and cannot be changed.

Note: this field supports Advanced Searching#auto-complete.

Syntax
type

Alias:

issueType
Field Type

ISSUE_TYPE

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Supported Functions

n/a

Examples
  • Find issues with an Issue Type of "Bug":

    type = Bug
  • Find issues with an Issue Type of "Bug" or "Improvement":

     issueType in (Bug,Improvement)
  • Find issues with an Issue Type ID of 2:

    issueType = 2

^top of fields | ^^top of topic

Time Spent

Only available if time-tracking has been enabled by your JIRA administrator.

Search for issues where the Time Spent is set to a particular value (i.e. a number, not a date or date range).

Use "w", "d", "h" and "m" to specify weeks, days, hours or minutes.

Note: this field does not support Advanced Searching#auto-complete.

Syntax
timeSpent
Field Type

DURATION

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Supported Functions

n/a

Examples
  • Find issues where the Time Spent is more than 5 days:

    timeSpent > 5d

^top of fields | ^^top of topic

Updated

Search for issues that were last updated on, before or after a particular date (or date range). Note that if a time-component is not specified, midnight will be assumed. Please note that the search results will be relative to your configured time zone (which is by default the JIRA server's time zone).

Use one of the following formats:

"yyyy/MM/dd HH:mm"
"yyyy-MM-dd HH:mm"
"yyyy/MM/dd"
"yyyy-MM-dd"

Or use "w" (weeks), "d" (days), "h" (hours) or "m" (minutes) to specify a date relative to the current time. The default is "m" (minutes). Be sure to use quote-marks ("); if you omit the quote-marks, the number you supply will be interpreted as milliseconds after epoch (1970-1-1).

Note: this field does not support Advanced Searching#auto-complete.

Syntax
updated

Alias:

updatedDate
Field Type

DATE

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Supported Functions
Examples
  • Find issues that were last updated before 12th December 2010:

    updated < "2010/12/12"
  • Find issues that were last updated on or before 12th December 2010:

    updated < "2010/12/13"
  • Find all issues that were last updated before 2.00pm on 31st December 2010:

    updated < "2010/12/31 14:00"
  • Find issues that were last updated more than two weeks ago:

    updated < "-2w"
  • Find issues that were last updated on 15 January 2011:

    updated > "2011/01/15" and updated < "2011/01/16"
  • Find issues that were last updated in January 2011:

    updated > "20011/01/01" and updated < "2011/02/01"

^top of fields | ^^top of topic

Voter

Search for issues for which a particular user has voted. You can search by the user's Full Name, ID or Email Address. Note that you can only find issues for which you have the "View Voters and Watchers" permission, unless you are searching for your own votes. See also Advanced Searching#votedIssues.

Note: this field supports Advanced Searching#auto-complete.

Syntax
voter
Field Type

USER

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Supported Functions
When used with the IN and NOT IN operators, this field supports:

When used with the EQUALS and NOT EQUALS operators, this field supports:

Examples
  • Search for issues for which you have voted:

    voter = currentUser()
  • Search for issues for which the user "jsmith" has voted:

    voter = "jsmith"
  • Search for issues for which a member of the group "jira-developers" has voted:

    voter in membersOf("jira-developers")

^top of fields | ^^top of topic

Votes

Search for issues with a specified number of votes.

Note: this field does not support Advanced Searching#auto-complete.

Syntax
votes
Field Type

NUMBER

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Supported Functions

n/a

Examples
  • Find all issues that have 12 or more votes:

    votes >= 12

^top of fields | ^^top of topic

Watcher

Search for issues that a particular user is watching. You can search by the user's Full Name, ID or Email Address. Note that you can only find issues for which you have the "View Voters and Watchers" permission, unless you are searching for issues where you are the watcher. See also Advanced Searching#watchedIssues.

Note: this field supports Advanced Searching#auto-complete.

Syntax
watcher
Field Type

USER

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Supported Functions
When used with the IN and NOT IN operators, this field supports:

When used with the EQUALS and NOT EQUALS operators, this field supports:

Examples
  • Search for issues that you are watching:

    watcher = currentUser()
  • Search for issues that the user "jsmith" is watching:

    watcher = "jsmith"
  • Search for issues that are being watched by a member of the group "jira-developers":

    watcher in membersOf("jira-developers")

^top of fields | ^^top of topic

Watchers

Search for issues with a specified number of watchers.

Note: this field does not support Advanced Searching#auto-complete.

Syntax
watchers
Field Type

NUMBER

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Supported Functions

n/a

Examples
  • Find all issues that are being watched by more than 3 people:

    watchers > 3

^top of fields | ^^top of topic

Work Ratio

Only available if time-tracking has been enabled by your JIRA administrator.

Search for issues where the Work Ratio has a particular value.

Work Ratio is calculated as follows: workRatio = Advanced Searching#timeSpent / Advanced Searching#originalEstimate) x 100

Note: this field does not support Advanced Searching#auto-complete.

Syntax
workRatio
Field Type

NUMBER

Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Supported Functions

n/a

Examples
  • Find issues on which more than 75% of the Original Estimate has been spent:

     workRatio > 75

^top of fields | ^^top of topic

Functions Reference

A function in JQL appears as a word followed by parentheses which may contain one or more explicit values or JIRA fields. In a clause, a function is preceded by an Advanced Searching#operator, which in turn is preceded by a Advanced Searching#field. A function performs a calculation on either specific JIRA data or the function's content in parentheses, such that only true results are retrieved by the function and then again by the clause in which the function is used.

^top of topic

List of Functions:

cascadeOption()

Search for issues that match the selected values of a 'cascading select' custom field.

The parentOption parameter matches against the first tier of options in the cascading select field. The childOption parameter matches against the second tier of options in the cascading select field, and is optional.

The keyword "none" can be used to search for issues where either or both of the options have no value.

Syntax
cascadeOption(parentOption)

or

cascadeOption(parentOption,childOption)
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Examples
  • Find issues where a custom field ("Location") has the value "USA" for the first tier and "New York" for the second tier:

    location in cascadeOption("USA","New York")
  • Find issues where a custom field ("Location") has the value "USA" for the first tier and any value (or no value) for the second tier:

    location in cascadeOption("USA")
  • Find issues where a custom field ("Location") has the value "USA" for the first tier and no value for the second tier:

    location in cascadeOption("USA",none)
  • Find issues where a custom field ("Location") has no value for the first tier and no value for the second tier:

    location in cascadeOption(none)
  • Find issues where a custom field ("Referrer") has the value "none" for the first tier and "none" for the second tier:

    referrer in cascadeOption("\"none\"","\"none\"")
  • Find issues where a custom field ("Referrer") has the value "none" for the first tier and no value for the second tier:

    referrer in cascadeOption("\"none\"",none)

^top of functions | ^^top of topic

 

closedSprints()

(info) Only available if you are using GreenHopper.

Search for issues that are assigned to a completed Sprint. (Note that it is possible for an issue to belong to both a completed Sprint(s) and an incomplete Sprint(s).)

See also Advanced Searching#openSprints().

Syntax
closedSprints()
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)

Examples
  • Find all issues that are assigned to a completed Sprint.

    sprint in closedSprints()

^top of functions | ^^top of topic

 

componentsLeadByUser()

Find issues in components that are lead by a specific user.

You can optionally specify a user, or if the user is omitted the current user (i.e. you) will be used.

Note that if you are not logged in to JIRA, a user must be specified.

Syntax
componentsLeadByUser()

or

componentsLeadByUser(username)
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Examples
  • Find open issues in components that are lead by you:

    component in componentsLeadByUser() AND status = Open
  • Find open issues in components that are lead by Bill:

    component in componentsLeadByUser(bill) AND status = Open

^top of functions | ^^top of topic

currentLogin()

Perform searches based on the time at which the current user's session began. See also Advanced Searching#lastLogin.

Syntax
currentLogin()
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(only in
predicate)

(only in
predicate)

(only in
predicate)

(only in
predicate)

(only in
predicate)
Examples
  • Find issues that have been created during my current session:

    created > currentLogin()

^top of functions | ^^top of topic

currentUser()

Perform searches based on the currently logged-in user.

Note that this function can only be used by logged-in users. So if you are creating a saved filter that you expect to be used by anonymous users, do not use this function.

Syntax
currentUser()
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)
Examples
  • Find issues that are assigned to me:

    assignee = currentUser()
  • Find issues that were reported to me but are not assigned to me:

    reporter = currentUser() and assignee != currentUser()

^top of functions | ^^top of topic

earliestUnreleasedVersion()

Perform searches based on the earliest unreleased version (i.e. next version that is due to be released) of a specified project. See also Advanced Searching#unreleasedVersions.

Note that the "earliest" is determined by the ordering assigned to the versions, not by actual Version Due Dates.

Syntax
earliestUnreleasedVersion(project)
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Examples
  • Find issues whose Advanced Searching#FixVersion is the earliest unreleased version of the ABC project:

    fixVersion = earliestUnreleasedVersion(ABC)
  • Find issues that relate to the earlist unreleased version of the ABC project:

    affectedVersion = earliestUnreleasedVersion(ABC) or fixVersion = earliestUnreleasedVersion(ABC)

^top of functions | ^^top of topic

endOfDay()

Perform searches based on the end of the current day. See also Advanced Searching#endOfWeek, Advanced Searching#endOfMonth and Advanced Searching#endOfYear; and Advanced Searching#startOfDay, Advanced Searching#startOfWeek, Advanced Searching#startOfMonth and Advanced Searching#startOfYear.

Syntax
endOfDay()

or

endOfDay("inc")

where inc is an optional increment of (+/-)nn(y|M|w|d|h|m)

  • If the time unit qualifier is omitted it defaults to the natural period of the function, e.g. endOfDay("+1") is the same as endOfDay("+1d").
  • If the plus/minus (+/-) sign is omitted, plus is assumed.
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(only in
predicate)

(only in
predicate)

(only in
predicate)

(only in
predicate)

(only in
predicate)
Examples
  • Find issues due by the end of today:

    due < endOfDay()
  • Find issues due by the end of tomorrow:

    due < endOfDay("+1")

^top of functions | ^^top of topic

endOfMonth()

Perform searches based on the end of the current month. See also Advanced Searching#endOfDay, Advanced Searching#endOfWeek and Advanced Searching#endOfYear; and Advanced Searching#startOfDay, Advanced Searching#startOfWeek, Advanced Searching#startOfMonth and Advanced Searching#startOfYear.

Syntax
endOfMonth()

or

endOfMonth("inc")

where inc is an optional increment of (+/-)nn(y|M|w|d|h|m)

  • If the time unit qualifier is omitted it defaults to the natural period of the function, e.g. endOfMonth("+1") is the same as endOfMonth("+1M").
  • If the plus/minus (+/-) sign is omitted, plus is assumed.
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(only in
predicate)

(only in
predicate)

(only in
predicate)

(only in
predicate)

(only in
predicate)
Examples
  • Find issues due by the end of this month:

    due < endOfMonth()
  • Find issues due by the end of next month:

    due endOfMonth("+1")
  • Find issues due by the 15th of next month:

    due endOfMonth("+15d")

^top of functions | ^^top of topic

endOfWeek()

Perform searches based on the end of the current week. See also Advanced Searching#endOfDay, Advanced Searching#endOfMonth and Advanced Searching#endOfYear; and Advanced Searching#startOfDay, Advanced Searching#startOfWeek, Advanced Searching#startOfMonth and Advanced Searching#startOfYear.

For the endOfWeek() function the result depends upon your locale. For example, in Europe the first day of the week is generally considered to be Monday, while in the USA it is considered to be Sunday.

Syntax
endOfWeek()

or

endOfWeek("inc")

where inc is an optional increment of (+/-)nn(y|M|w|d|h|m)

  • If the time unit qualifier is omitted it defaults to the natural period of the function, e.g. endOfWeek("+1") is the same as endofWeek("+1w").
  • If the plus/minus (+/-) sign is omitted, plus is assumed.
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(only in
predicate)

(only in
predicate)

(only in
predicate)

(only in
predicate)

(only in
predicate)
Examples
  • Find issues due by the end of this week:

    due < endOfWeek()
  • Find issues due by the end of next week:

    due < endOfWeek("+1")

^top of functions | ^^top of topic

endOfYear()

Perform searches based on the end of the current year. See also Advanced Searching#startOfDay, Advanced Searching#startOfWeek and Advanced Searching#startOfMonth; and Advanced Searching#endOfDay, Advanced Searching#endOfWeek, Advanced Searching#endOfMonth and Advanced Searching#endOfYear.

startOfYear()

or

startOfYear("inc")

where inc is an optional increment of (+/-)nn(y|M|w|d|h|m)

  • If the time unit qualifier is omitted it defaults to the natural period of the function, e.g. endOfYear("+1") is the same as endofYear("+1y").
  • If the plus/minus (+/-) sign is omitted, plus is assumed.
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(only in
predicate)

(only in
predicate)

(only in
predicate)

(only in
predicate)

(only in
predicate)
Examples
  • Find issues due by the end of this year:

    due < endOfYear()
  • Find issues due by the end of March next year:

    due < endOfYear("+3M")

^top of functions | ^^top of topic

issueHistory()

Find issues that you have recently viewed, i.e. issues that are in the 'Recent Issues' section of the 'Issues' drop-down menu.

Note:

  • issueHistory() returns up to 50 issues, whereas the 'Recent Issues' drop-down returns only 5.
  • if you are not logged in to JIRA, only issues from your current browser session will be included.
Syntax
issueHistory()
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Examples
  • Find issues which I have recently viewed, that are assigned to me:

    issue in issueHistory() AND assignee = currentUser()

^top of functions | ^^top of topic

lastLogin()

Perform searches based on the time at which the current user's previous session began. See also Advanced Searching#currentLogin.

Syntax
currentLogin()
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(only in
predicate)

(only in
predicate)

(only in
predicate)

(only in
predicate)

(only in
predicate)
Examples
  • Find issues that have been created during my last session:

    created > lastLogin()

^top of functions | ^^top of topic

latestReleasedVersion()

Perform searches based on the latest released version (i.e. the most recent version that has been released) of a specified project. See also Advanced Searching#releasedVersions().

Note that the "latest" is determined by the ordering assigned to the versions, not by actual Version Due Dates.

Syntax
latestReleasedVersion(project)
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Examples
  • Find issues whose Advanced Searching#FixVersionis the latest released version of the ABC project:

    fixVersion = latestReleasedVersion(ABC)
  • Find issues that relate to the latest released version of the ABC project:

    affectedVersion = latestReleasedVersion(ABC) or fixVersion = latestReleasedVersion(ABC)

^top of functions | ^^top of topic

linkedIssues()

Perform searches based on issues which are linked to a specified issue.

You can optionally restrict the search to links of a particular type. Note that LinkType is case-sensitive.

Syntax
linkedIssues(issueKey)

or

linkedIssues(issueKey,linkType)
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Examples
  • Find issues that are linked to a particular issue:

    issue in linkedIssues(ABC-123)
  • Find issues that are linked to a particular issue via a particular type of link:

    issue in linkedIssues(ABC-123,"is duplicated by")

^top of functions | ^^top of topic

membersOf()

Perform searches based on the members of a particular group.

Syntax
membersOf(Group)
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Examples
  • Find issues where the Assignee is a member of the group "jira-developers":

    assignee in membersOf("jira-developers")
  • Search through multiple groups and a specific user, e.g:

    reporter in membersOf("jira-developers") or reporter in membersOf("jira-administrators") or reporter=jsmith
  • Search for a particular group, but exclude a particular member or members, e.g.:

    assignee in membersOf(QA) and assignee not in ("John Smith","Jill Jones")
  • Exclude members of a particular group:

    assignee not in membersOf(QA)

^top of functions | ^^top of topic

now()

Perform searches based on the current time.

Syntax
now()
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(only in
predicate)

(only in
predicate)

(only in
predicate)

(only in
predicate)

(only in
predicate)
Examples
  • Find issues that are overdue:

    duedate < now() and status not in (closed, resolved) 

^top of functions | ^^top of topic

 

openSprints()

(info) Only available if you are using GreenHopper.

Search for issues that are assigned to a Sprint which has not yet been completed. (Note that it is possible for an issue to belong to both a completed Sprint(s) and an incomplete Sprint(s).)

See also closedSprints().

Syntax
openSprints()
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)

Examples
  • Find all issues that are assigned to a Sprint which has not yet been completed.

    sprint in openSprints()

     

^top of functions | ^^top of topic

 

projectsLeadByUser()

Find issues in projects that are lead by a specific user.

You can optionally specify a user, or if the user is omitted the current user will be used.

Note that if you are not logged in to JIRA, a user must be specified.

Syntax
projectsLeadByUser()

or

projectsLeadByUser(username)
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Examples
  • Find open issues in projects that are lead by you:

    project in projectsLeadByUser() AND status = Open
  • Find open issues in projects that are lead by Bill:

    project in projectsLeadByUser(bill) AND status = Open

^top of functions | ^^top of topic

projectsWhereUserHasPermission()

Find issues in projects where you have a specific permission.

Note: This function operates at the project level. This means that if a permission (e.g. "Edit Issues") is granted to the reporter of issues in a project, then you may see some issues returned where you are
not the reporter and therefore don't have the permission specified.

Also note that this function is only available if you are logged in to JIRA.

Syntax
projectsWhereUserHasPermission(permission)

For the permission parameter you can specify any of the following:

Project Permissions

Explanation

Administer Projects

Permission to administer a project in JIRA. This includes the ability to edit project role membership, project components, project versions and some project details ('Project Name', 'URL', 'Project Lead', 'Project Description').

Browse Projects

Permission to browse projects, use the Issue Navigator and view individual issues (except issues that have been restricted via Issue Security). Many other permissions are dependent on this permission, e.g. the 'Work On Issues' permission is only effective for users who also have the 'Browse Projects' permission.

View Version Control

Permission to view the related source code commits (e.g. CVS, Subversion, FishEye, etc) for an issue, in a 'Source' tab. Note that for CVS, to view the related source code commits, the project needs to be associated with at least one Repository.
Note, If you are using JIRA 5.1.1 or earlier, this permission will be named 'View Version Control'.

View (Read-Only) Workflow

Permission to view the project's 'read-only' workflow when viewing an issue. This permission provides the 'View Workflow' link against the 'Status' field of the 'View Issue' page.

Issue Permissions

Explanation

Assign Issues

Permission to assign issues to users. (See also Assignable User permission below)

Assignable User

Permission to be assigned issues. (Note that this does not include the ability to assign issues; see Assign Issue permission above).

Close Issues

Permission to close issues. (This permission is useful where, for example, developers resolve issues and testers close them). Also see the Resolve Issues permission.

Create Issues

Permission to create issues in the project. (Note that the Create Attachments permission is required in order to create attachments.) Includes the ability to create sub-tasks (if sub-tasks are enabled).

Delete Issues

Permission to delete issues. Think carefully about which groups or project roles you assign this permission to; usually it will only be given to administrators. Note that deleting an issue will delete all of its comments and attachments, even if the user does not have the Delete Comments or Delete Attachments permissions. However, the Delete Issues permission does not include the ability to delete individual comments or attachments.

Edit Issues

Permission to edit issues (excluding the 'Due Date' field — see the Schedule Issues permission). Includes the ability to convert issues to sub-tasks and vice versa (if sub-tasks are enabled). Note that the Delete Issue permission is required in order to delete issues. The Edit Issue permission is usually given to any groups or project roles who have the Create Issue permission (perhaps the only exception to this is if you give everyone the ability to create issues — it may not be appropriate to give everyone the ability to edit too). Note that all edits are recorded in the Issue Change History for audit purposes.

Link Issues

Permission to link issues together. (Only relevant if Issue Linking is enabled).

Modify Reporter

Permission to modify the 'Reporter' of an issue. This allows a user to create issues 'on behalf of' someone else. This permission should generally only be granted to administrators.

Move Issues

Permission to move issues from one project to another, or from one workflow to another workflow within the same project. Note that a user can only move issues to a project for which they have Create Issue permission.

Resolve Issues

Permission to resolve and reopen issues. This also includes the ability to set the 'Fix For version' field for issues. Also see the Close Issues permission.

Schedule Issues

Permission to schedule an issue — that is, set and edit the 'Due Date' of an issue.

Set Issue Security

Permission to set the security level on an issue to control who can access the issue. Only relevant if issue security has been enabled.

Voters & Watchers Permissions

Explanation

Manage Watcher List

Permission to manage (i.e. view/add/remove users to/from) the watcher list of an issue.

View Voters and Watchers

Permission to view the voter list and watcher list of an issue. Also see the Manage Watcher List permission.

Comments Permissions

Explanation

Add Comments

Permission to add comments to issues. Note that this does not include the ability to edit or delete comments.

Delete All Comments

Permission to delete any comments, regardless of who added them.

Delete Own Comments

Permission to delete comments that were added by the user.

Edit All Comments

Permission to edit any comments, regardless of who added them.

Edit Own Comments

Permission to edit comments that were added by the user.

Attachments Permissions

Explanation

Create Attachments

Permission to attach files to an issue. (Only relevant if attachments are enabled). Note that this does not include the ability to delete attachments.

Delete All Attachments

Permission to delete any attachments, regardless of who added them.

Delete Own Attachments

Permission to delete attachments that were added by the user.

Time Tracking Permissions

Explanation

Work On Issues

Permission to log work against an issue, i.e. create a worklog entry. (Only relevant if Time Tracking is enabled).

Delete All Worklogs

Permission to delete any worklog entries, regardless of who added them. (Only relevant if Time Tracking is enabled). Also see the Work On Issues permission.

Delete Own Worklogs

Permission to delete worklog entries that were added by the user. (Only relevant if Time Tracking is enabled). Also see the Work On Issues permission.

Edit All Worklogs

Permission to edit any worklog entries, regardless of who added them. (Only relevant if Time Tracking is enabled). Also see the Work On Issues permission.

Edit Own Worklogs

Permission to edit worklog entries that were added by the user. (Only relevant if Time Tracking is enabled). Also see the Work On Issues permission.

Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Examples
  • Find open issues in projects where you have the "Resolve Issues" permission:

    project in projectsWhereUserHasPermission("Resolve Issues") AND status = Open

^top of functions | ^^top of topic

projectsWhereUserHasRole()

Find issues in projects where you have a specific role.

Note that this function is only available if you are logged in to JIRA.

Syntax
projectsWhereUserHasRole(rolename)
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Examples
  • Find open issues in projects where you have the "Developers" role:

    project in projectsWhereUserHasRole("Developers") AND status = Open

^top of functions | ^^top of topic

releasedVersions()

Perform searches based on the released versions (i.e. versions that your JIRA administrator has released) of a specified project.

You can also search on the released versions of all projects, by omitting the project parameter.

See also Advanced Searching#latestReleasedVersion().

Syntax
releasedVersions()

or

releasedVersions(project)
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Examples
  • Find issues whose Advanced Searching#FixVersion is a released version of the ABC project:

    fixVersion in releasedVersions(ABC)
  • Find issues that relate to released versions of the ABC project:

    (affectedVersion in releasedVersions(ABC)) or (fixVersion in releasedVersions(ABC))

^top of functions | ^^top of topic

standardIssueTypes()

Perform searches based on "standard" Issue Types, that is, search for issues which are not sub-tasks.

See also Advanced Searching#subtaskIssueTypes().

Syntax
standardIssueTypes()
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Examples
  • Find issues that are not subtasks (i.e. issues whose Issue Type is a standard issue type, not a subtask issue type):

    issuetype in standardIssueTypes()

^top of functions | ^^top of topic

startOfDay()

Perform searches based on the start of the current day. See also Advanced Searching#startOfWeek, Advanced Searching#startOfMonth and Advanced Searching#startOfYear; and Advanced Searching#endOfDay, Advanced Searching#endOfWeek, Advanced Searching#endOfMonth and Advanced Searching#endOfYear.

Syntax
startOfDay()

or

startOfDay("inc")

where inc is an optional increment of (+/-)nn(y|M|w|d|h|m)

  • If the time unit qualifier is omitted it defaults to the natural period of the function, e.g. startOfDay("+1") is the same as startofDay("+1d").
  • If the plus/minus (+/-) sign is omitted, plus is assumed.
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(only in
predicate)

(only in
predicate)

(only in
predicate)

(only in
predicate)

(only in
predicate)
Examples
  • Find new issues created since the start of today:

    created > startOfDay()
  • Find new issues created since the start of yesterday:

    created > startOfDay("-1")
  • Find new issues created in the last three days:

    created > startOfDay("-3d")

^top of functions | ^^top of topic

startOfMonth()

Perform searches based on the start of the current month. See also Advanced Searching#startOfDay, Advanced Searching#startOfWeek and Advanced Searching#startOfYear; and Advanced Searching#endOfDay, Advanced Searching#endOfWeek, Advanced Searching#endOfMonth and Advanced Searching#endOfYear.

Syntax
startOfMonth()

or

startOfMonth("inc")

where inc is an optional increment of (+/-)nn(y|M|w|d|h|m)

  • If the time unit qualifier is omitted it defaults to the natural period of the function, e.g. startOfMonth("+1") is the same as startofMonth("+1M").
  • If the plus/minus (+/-) sign is omitted, plus is assumed.
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(only in
predicate)

(only in
predicate)

(only in
predicate)

(only in
predicate)

(only in
predicate)
Examples
  • Find new issues since the start of this month:

    created > startOfMonth()
  • Find new issues since the start of last month:

    created > startOfMonth("-1")
  • Find new issues since the 15th of this month:

    created > startOfMonth("+14d")

^top of functions | ^^top of topic

startOfWeek()

Perform searches based on the start of the current week. See also Advanced Searching#startOfDay, Advanced Searching#startOfMonth and Advanced Searching#startOfYear; and Advanced Searching#endOfDay, Advanced Searching#endOfWeek, Advanced Searching#endOfMonth and Advanced Searching#endOfYear.

For the startOfWeek() function the result depends upon your locale. For example, in Europe the first day of the week is generally considered to be Monday, while in the USA it is considered to be Sunday.

Syntax
startOfWeek()

or

startOfWeek("inc")

where inc is an optional increment of (+/-)nn(y|M|w|d|h|m)

  • If the time unit qualifier is omitted it defaults to the natural period of the function, e.g. startOfWeek("+1") is the same as startofWeek("+1w").
  • If the plus/minus (+/-) sign is omitted, plus is assumed.
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(only in
predicate)

(only in
predicate)

(only in
predicate)

(only in
predicate)

(only in
predicate)
Examples
  • Find new issues since the start of this week:

    created > startOfWeek()
  • Find new issues since the start of last week:

    created > startOfWeek("-1")

^top of functions | ^^top of topic

startOfYear()

Perform searches based on the start of the current year. See also Advanced Searching#startOfDay, Advanced Searching#startOfWeek and Advanced Searching#startOfMonth; and Advanced Searching#endOfDay, Advanced Searching#endOfWeek, Advanced Searching#endOfMonth and Advanced Searching#endOfYear.

startOfYear()

or

startOfYear("inc")

where inc is an optional increment of (+/-)nn(y|M|w|d|h|m)

  • If the time unit qualifier is omitted it defaults to the natural period of the function, e.g. startOfYear("+1") is the same as startofYear("+1y").
  • If the plus/minus (+/-) sign is omitted, plus is assumed.
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(only in
predicate)

(only in
predicate)

(only in
predicate)

(only in
predicate)

(only in
predicate)
Examples
  • Find new issues since the start of this year:

    created > startOfYear()
  • Find new issues since the start of last year:

    created > startOfYear("-1")

^top of functions | ^^top of topic

subtaskIssueTypes()

Perform searches based on issues which are sub-tasks.

See also Advanced Searching#standardIssueTypes().

Syntax
subtaskIssueTypes()
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Examples
  • Find issues that are subtasks (i.e. issues whose Issue Type is a subtask issue type):

    issuetype in subtaskIssueTypes()

^top of functions | ^^top of topic

unreleasedVersions()

Perform searches based on the unreleased versions (i.e. versions that your JIRA administrator has not yet released) of a specified project.

You can also search on the unreleased versions of all projects, by omitting the project parameter.

See also Advanced Searching#earliestUnreleasedVersion().

Syntax
unreleasedVersions()

or

unreleasedVersions(project)
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Examples
  • Find issues whose Advanced Searching#FixVersionis an unreleased version of the ABC project:

    fixVersion in unreleasedVersions(ABC)
  • Find issues that relate to unreleased versions of the ABC project:

    affectedVersion in unreleasedVersions(ABC)

    or

    fixVersion in unreleasedVersions(ABC)

^top of functions | ^^top of topic

votedIssues()

Perform searches based on issues for which you have voted. Also see the Advanced Searching#Voter field.

Note that this function can only be used by logged-in users.

Syntax
votedIssues()
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Examples
  • Find issues that you have voted for:

    issue in votedIssues()

^top of functions | ^^top of topic

watchedIssues()

Perform searches based on issues which you are watching. Also see the Advanced Searching#Watcher field.

Note that this function can only be used by logged-in users.

Syntax
watchedIssues()
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Examples
  • Find issues that you are watching:

    issue in watchedIssues()
Supported Fields
Supported Operators

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)
Examples
  • Find issues that you have recently viewed:

    issue in issueHistory()

^top of functions | ^^top of topic

Setting Precedence of Operators

You can use parentheses in complex JQL statements to enforce the precedence of Advanced Searching#operators.

For example, if you want to find all resolved issues in the SysAdmin project as well as all issues (any status, any project) currently assigned to the system administrator (bobsmith), you can use parentheses to enforce the precedence of the boolean operators in your query, i.e.:

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

Note that if you do not use parentheses, the statement will be evaluated left-to-right.

You can also use parentheses to group clauses, so that you can apply the Advanced Searching#NOT operator to the group.

Performing Text Searches

You can use Lucene's text-searching features when performing searches on the following fields, using the Advanced Searching#CONTAINS operator:

For details, please see the page on Performing Text Searches.

 

Using Auto-complete

As you type your query, JIRA will recognise the context and offer a list of "auto-complete" suggestions as follows:

The list of auto-complete suggestions is displayed alphabetically and includes the first 15 matches. Note that auto-complete suggestions are not offered for Advanced Searching#function parameters.

Please note:

  • If no auto-complete suggestions are offered, your administrator may have disabled the "JQL Auto-complete" feature for your JIRA instance.
  • If you prefer not to be offered auto-complete suggestions, click the "Turn off auto-complete" link below the "Advanced Searching#Query" box.

Auto-complete suggestions are not offered for all fields. Check the Advanced Searching#fields reference to see which fields support auto-complete.

If you type a space at the start of your query...

...JIRA will offer a list of all available fields, e.g.:

If you type one or more characters...

...JIRA will offer a list of matching fields, e.g.:

If you type a field then a space...

...JIRA will offer a list of valid Advanced Searching#operators, e.g.:

If you type a field, then an operator, then a space...

...JIRA will offer a list of valid values, e.g.:

If you type a field, then an operator, then one or more characters...

...JIRA will offer a list of valid values (if your Advanced Searching#field supports this) and valid functions for the field/operator combination, e.g.:

Switching between 'Advanced' and 'Simple' Search

In general, a query created using 'Simple Search' will be able to be translated to 'Advanced Search' (i.e. JQL), and back again.

However, a query created using 'Advanced Search' may not be able to be translated to 'Simple Search', particular if:

  • the query contains an OR operator (note you can have an IN operator and it will be translated, e.g. project in (A, B))
    • i.e. even though this query: (project = JRA OR project = CONF) is equivalent to this query:(project in (JRA, CONF)), only the second query will be translated.
  • the query contains a NOT operator
  • the query contains an EMPTY operator
  • the query contains any of the comparison operators: !=, IS, IS NOT, >, >=, <, <=
  • the query specifies a field and value that is related to a project (e.g. version, component, custom fields) and the project is not explicitly included in the query (e.g.
    fixVersion = "4.0", without the AND project=JRA). This is especially tricky with custom fields since they can be configured on a Project/Issue Type basis. The general rule of thumb is
    that if the query cannot be created in the 'Simple Search' form, then if it is created using 'Advanced Search' it will not be able to be translated to 'Simple Search'.

Reserved Characters

JQL has a list of reserved characters:

  • space (" ")
  • "+"
  • "."
  • ","
  • ";"
  • "?"
  • "|"
  • "*"
  • "/"
  • "%"
  • "^"
  • "$"
  • "#"
  • "@"
  • "["
  • "]"

If you wish to use these characters in queries, you need to:

  • surround them with quote-marks (you can use either single quote-marks (') or double quote-marks ("));
    and, if you are searching a text field and the character is on the list of reserved characters for Text Searches,
  • precede them with two backslashes.

The text fields are:

For example:

version = "[example]"
version = "4.2"
summary ~ "\\[example\\]"
summary ~ "4.2"

Reserved Words

JQL has a list of reserved words. These words need to be surrounded by quote-marks if you wish to use them in queries:

"abort", "access", "add", "after", "alias", "all", "alter", "and", "any", "as", "asc",
"audit", "avg", "before", "begin", "between", "boolean", "break", "by", "byte", "catch", "cf",
"char", "character", "check", "checkpoint", "collate", "collation", "column", "commit", "connect", "continue",
"count", "create", "current", "date", "decimal", "declare", "decrement", "default", "defaults", "define", "delete",
"delimiter", "desc", "difference", "distinct", "divide", "do", "double", "drop", "else", "empty", "encoding",
"end", "equals", "escape", "exclusive", "exec", "execute", "exists", "explain", "false", "fetch", "file", "field",
"first", "float", "for", "from", "function", "go", "goto", "grant", "greater", "group", "having",
"identified", "if", "immediate", "in", "increment", "index", "initial", "inner", "inout", "input", "insert",
"int", "integer", "intersect", "intersection", "into", "is", "isempty", "isnull", "join", "last", "left",
"less", "like", "limit", "lock", "long", "max", "min", "minus", "mode", "modify",
"modulo", "more", "multiply", "next", "noaudit", "not", "notin", "nowait", "null", "number", "object",
"of", "on", "option", "or", "order", "outer", "output", "power", "previous", "prior", "privileges",
"public", "raise", "raw", "remainder", "rename", "resource", "return", "returns", "revoke", "right", "row",
"rowid", "rownum", "rows", "select", "session", "set", "share", "size", "sqrt", "start", "strict",
"string", "subtract", "sum", "synonym", "table", "then", "to", "trans", "transaction", "trigger", "true",
"uid", "union", "unique", "update", "user", "validate", "values", "view", "when", "whenever", "where",
"while", "with"

 

You can use either single quote-marks (') or double quote-marks (").

(Note for JIRA administrators: this list is hard coded in the JqlStringSupportImpl.java file.)

 

^^top of topic

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)