Documentation for JIRA 4.2. Documentation for other versions of JIRA is available too. 
![]()
On this page:
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.
A query consists of a Advanced Searching#field, followed by an Advanced Searching#operator, followed by a value or Advanced Searching#function. For example, the following 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".)
Note that it is not possible to compare two Advanced Searching#fields.
When you perform an advanced search, you are using the JIRA Query Language (JQL). JQL gives you some SQL-like statements, such as Advanced Searching and Advanced Searching#NULL. It is not, however, a database query language; for example, JQL does not have a SELECT statement.
Used to combine multiple statements, allowing you to refine your search.
Note that you can use Advanced Searching#parentheses to control the order in which statements are executed.
project = "New office" and status = "open"
status = open and priority = urgent and assignee = jsmith
project = JRA and assignee != jsmith
project in (JRA,CONF) and fixVersion = "3.14"
reporter not in (Jack,Jill,John) and assignee not in (Jack,Jill,John)
Used to combine multiple statements, allowing you to expand your search.
Note that you can use Advanced Searching#parentheses to control the order in which statements are executed.
(Note: also see Advanced Searching#IN, which can be a more convenient way to search for multiple values of a field.)
reporter = jsmith or reporter = jbrown
duedate < now() or duedate is empty
Used to negate individual operators or entire statements of a query, allowing you to refine your search.
Note that you can use Advanced Searching#parentheses to control the order in which statements are executed.
(Note: also see Advanced Searching#NOT_EQUALS ("!="), Advanced Searching#DOES_NOT_CONTAIN ("!~"), Advanced Searching#NOT_IN and Advanced Searching#IS_NOT.)
not assignee = jsmith
not (reporter = jsmith or reporter = jbrown)
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 Advanced Searching#IS_NOT operators. To see a field's supported operators, check the individual Advanced Searching#field reference.
duedate = empty
duedate is empty
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 Advanced Searching#IS_NOT operators. To see a field's supported operators, check the individual Advanced Searching#field reference.
duedate = null
duedate is null
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").
duedate = empty order by created
duedate = empty order by created, priority desc
duedate = empty order by created, priority asc
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.
reporter = jsmith
reporter = "John Smith"
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 Advanced Searching#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.
not assignee = jsmith
assignee != jsmith
assignee != jsmith or assignee is empty
reporter = currentUser() and assignee != currentUser()
assignee != "John Smith" or reporter != "John Smith"
assignee is not empty
assignee != null
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.
votes > 4
duedate < now() and resolution is empty
priority > normal
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.
votes >= 4
duedate >= "2008/12/31"
created >= "-5d"
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.
votes < 4
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.
votes <= 4
updated <= "-4w 2d"
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".
reporter in (jsmith,jbrown,jjones)
reporter in (Jack,Jill) or assignee in (Jack,Jill)
affectedVersion in ("3.14", "4.2")
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.
assignee not in (Jack,Jill,John)
assignee not in (Jack,Jill,John) or assignee is empty
FixVersion not in ( A, B, C, D)
FixVersion not in ( A, B, C, D) or FixVersion is empty
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.
summary ~ win
summary ~ "win*"
summary ~ "\"full screen\""
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.
summary !~ run
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.
fixVersion is empty
fixVersion is null
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.
votes is not empty
votes is not null
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.
affectedVersion
VERSION
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
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.
affectedVersion = "3.14"
affectedVersion = "Big Ted"
affectedVersion = 10350
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.
assignee
USER
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
When used with the EQUALS and NOT_EQUALS operators, this field supports:
assignee = "John Smith"
assignee = jsmith
assignee = "bob@mycompany.com"
Search for issues that belong to projects in a particular Category.
Note: this field supports Advanced Searching#auto-complete.
category
CATEGORY
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
n/a
category = "Alphabet Projects"
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.
comment
TEXT
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
n/a
comment ~ "My PC is quite old"
comment ~ "\"My PC is quite old\""
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.
component
COMPONENT
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
When used with the Advanced Searching#IN and Advanced Searching#NOT_IN operators, component supports:
component in (Comp1, Comp2)
component in (Comp1) and component in (Comp2)
component = Comp1 and component = Comp2
component = 20500
Search for issues that were created on, before or after a particular date (or date range).
"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.
created
Alias:
createdDate
DATE
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
created <= "2008/12/12"
created > "-1d"
created > "2008/12/31" and created < "2009/02/01"
created > "2009/01/14" and created < "2009/01/16"
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:
CustomFieldName
Alias:
cf[CustomFieldID]
Depends on the Custom Field's configuration
Different types of Custom Fields support different Advanced Searching#operators. For the default Custom Field Types, the following operators are supported:
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Different types of Custom Fields support different Advanced Searching#functions. For the default Custom Field Types, the following functions are supported:
location = "New York"
cf[10003] = "New York"
cf[10003] in ("London", "Milan", "Paris")
location != empty
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.
description
TEXT
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
n/a
description ~ "Please see screenshot"
description ~ "\"Please see screenshot\""
Search for issues that were due on, before or after a particular date (or date range).
"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 that Due Date relates to the date only (not to the time).
Note: this field does not support Advanced Searching#auto-complete.
due
Alias:
dueDate
DATE
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
due <= "2008/12/31"
due = "1d"
due > "2008/12/31" and due < "2009/02/01"
due > "2009/01/14" and due < "2009/01/16"
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.
environment
TEXT
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
n/a
environment ~ "Third floor"
environment ~ "\"Third floor\""
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:
filter
request
savedFilter
searchRequest
FILTER
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
n/a
filter = "My Saved Filter" and assignee = jsmith
filter = 12000 and assignee = jsmith
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.
fixVersion
VERSION
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
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.
fixVersion in ("3.14", "4.2")
fixVersion = "Little Ted"
fixVersion = 10001
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.
issueKey
Aliases:
id
issue
key
ISSUE
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
When used with the Advanced Searching#IN or Advanced Searching#NOT_IN operators, issueKey supports:
issueKey = ABC-123
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.
level
SECURITY LEVEL
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
n/a
level in ("Really High", level1)
level = 123
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.
originalEstimate
Alias:
timeOriginalEstimate
DURATION
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
n/a
originalEstimate = 1h
originalEstimate > 2d
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.
parent
ISSUE
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
n/a
parent = TEST-1234
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.
priority
PRIORITY
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
n/a
priority = High
priority = 10000
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.
project
PROJECT
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
When used with the Advanced Searching#IN and Advanced Searching#NOT_IN operators, project supports:
project = "ABC Project"
project = "ABC"
project = 1234
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.
remainingEstimate
Alias:
timeEstimate
DURATION
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
n/a
remainingEstimate > 4h
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.
reporter
USER
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
When used with the EQUALS and NOT_EQUALS operators, this field supports:
reporter = "Jill Jones"
reporter = jjones
assignee = "bob@mycompany.com"
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.
resolution
RESOLUTION
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
n/a
resolution in ("Cannot Reproduce", "Won't Fix")
resolution = 5
resolution = unresolved
Search for issues that were resolved on, before or after a particular date (or date range).
"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.
resolved
Alias:
resolutionDate
DATE
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
When used with the Advanced Searching#EQUALS, Advanced Searching#NOT_EQUALS, Advanced Searching#GREATER_THAN, Advanced Searching#GREATER_THAN_EQUALS, Advanced Searching#LESS_THAN or Advanced Searching#LESS_THAN_EQUALS operators, resolved supports:
resolved <= "2008/12/31"
resolved > "2008/12/31" and resolved < "2009/02/01"
resolved > "2009/01/14" and resolved < "2009/01/16"
resolved > -1h
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.
Note: this field supports Advanced Searching#auto-complete.
status
STATUS
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
n/a
status = Open
status = 1
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.
summary
TEXT
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
n/a
summary ~ "Error saving file"
summary ~ "\"Error saving file\""
This is a "master-field" that allows you to search all text fields, i.e.:
Note: The text master-field can only be used with the Advanced Searching#CONTAINS operator ("~" and "!~").
text
TEXT
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
n/a
text ~ "Fred"
text ~ Fred
text ~ "\"full screen\""
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.
type
Alias:
issueType
ISSUE_TYPE
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
n/a
type = Bug
issueType in (Bug,Improvement)
issueType = 2
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.
timeSpent
DURATION
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
n/a
timeSpent > 5d
Search for issues that were last updated on, before or after a particular date (or date range).
"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.
updated
Alias:
updatedDate
DATE
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
updated <= "2008/12/12"
updated < "-2w"
updated > "2009/01/14" and updated < "2009/01/16"
updated > "2008/12/31" and updated < "2009/02/01"
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.
voter
USER
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
When used with the EQUALS and NOT_EQUALS operators, this field supports:
voter = currentUser()
voter = "jsmith"
voter in membersOf("jira-developers")
Search for issues with a specified number of votes.
Note: this field does not support Advanced Searching#auto-complete.
votes
NUMBER
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
n/a
votes >= 12
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.
voter
USER
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
When used with the EQUALS and NOT_EQUALS operators, this field supports:
watcher = currentUser()
watcher = "jsmith"
watcher in membersOf("jira-developers")
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.
workRatio
NUMBER
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
n/a
workRatio > 75
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.
cascadeOption(parentOption)
or
cascadeOption(parentOption,childOption)
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
location in cascadeOption("USA","New York")
location in cascadeOption("USA")
location in cascadeOption("USA",none)
location in cascadeOption(none)
referrer in cascadeOption("\"none\"","\"none\"")
referrer in cascadeOption("\"none\"",none)
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.
componentsLeadByUser()
or
componentsLeadByUser(username)
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
component in componentsLeadByUser() AND status = Open
component in componentsLeadByUser(bill) AND status = Open
Perform searches based on the time at which the current user's session began. See also Advanced Searching#lastLogin.
currentLogin()
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
created > currentLogin()
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.
currentUser()
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
assignee = currentUser()
reporter = currentUser() and assignee != currentUser()
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.issueHistory()
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
issue in issueHistory() AND assignee = currentUser()
Perform searches based on the time at which the current user's previous session began. See also Advanced Searching#currentLogin.
currentLogin()
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
created > lastLogin()
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.
linkedIssues(issueKey)
or
linkedIssues(issueKey,linkType)
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
issue in linkedIssues(ABC-123)
issue in linkedIssues(ABC-123,"is duplicated by")
Perform searches based on the members of a particular group.
membersOf(Group)
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
assignee in membersOf("jira-developers")
reporter in membersOf("jira-developers") or reporter in membersOf("jira-administrators") or reporter=jsmith
assignee in membersOf(QA) and assignee not in ("John Smith","Jill Jones")
assignee not in membersOf(QA)
Perform searches based on the current time.
now()
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
duedate < now() and status not in (closed, resolved)
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.
projectsLeadByUser()
or
projectsLeadByUser(username)
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
project in projectsLeadByUser() AND status = Open
project in projectsLeadByUser(bill) AND status = Open
Find issues in projects where you have a specific permission.
Note that this function is only available if you are logged in to JIRA.
projectsWhereUserHasPermission(permission)
For the permission parameter you can specify any of the following:
Project Permission |
Explanation |
|---|---|
Add Comments |
Permission to add comments to issues. Note that this does not include the ability to edit or delete comments. |
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'). |
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). |
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. |
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 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. |
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 All Attachments |
Permission to delete any attachments, regardless of who added them. |
Delete All Comments |
Permission to delete any comments, regardless of who added them. |
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 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. |
Delete Own Attachments |
Permission to delete attachments that were added by the user. |
Delete Own Comments |
Permission to delete comments that were added by the user. |
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 Comments |
Permission to edit any comments, regardless of who added them. |
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 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. |
Edit Own Comments |
Permission to edit comments that were added by the user. |
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. |
Link Issues |
Permission to link issues together. (Only relevant if Issue Linking is enabled). |
Manage Watcher List |
Permission to manage (i.e. view/add/remove users to/from) the watcher list of an issue. |
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. |
View Version Control |
Permission to view the version control information (e.g. CVS, Subversion, FishEye, etc) for an issue. Note that for CVS, to view the Version Control information the project needs to be associated with at least one Repository. |
View Voters and Watchers |
Permission to view the voter list and watcher list of an issue. Also see the Manage Watcher List permission. |
Work On Issues |
Permission to log work against an issue, i.e. create a worklog entry. (Only relevant if Time Tracking is enabled). |
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
project in projectsWhereUserHasPermission("Resolve Issues") AND status = Open
Find issues in projects where you have a specific role.
Note that this function is only available if you are logged in to JIRA.
projectsWhereUserHasRole(rolename)
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
project in projectsWhereUserHasRole("Developers") AND status = Open
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.
releasedVersions()
or
releasedVersions(project)
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
fixVersion in releasedVersions(ABC)
affectedVersion in releasedVersions(ABC)
fixVersion in releasedVersions(ABC)
Perform searches based on "standard" Issue Types, that is, search for issues which are not sub-tasks.
standardIssueTypes()
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
issuetype in standardIssueTypes()
Perform searches based on issues which are sub-tasks.
subtaskIssueTypes()
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
issuetype in subtaskIssueTypes()
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.
unreleasedVersions()
or
unreleasedVersions(project)
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
fixVersion in unreleasedVersions(ABC)
affectedVersion in unreleasedVersions(ABC)
fixVersion in unreleasedVersions(ABC)
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.
votedIssues()
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
issue in votedIssues()
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.
watchedIssues()
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
issue in watchedIssues()
= |
!= |
~ |
!~ |
> |
>= |
< |
<= |
IS |
IS NOT |
IN |
NOT IN |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
issue in issueHistory()
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.
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, which includes the following sections:
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:
Auto-complete suggestions are not offered for all fields. Check the Advanced Searching#fields reference to see which fields support auto-complete.
...JIRA will offer a list of all available fields, e.g.:
...JIRA will offer a list of matching fields, e.g.:
...JIRA will offer a list of valid Advanced Searching#operators, e.g.:
...JIRA will offer a list of valid values, e.g.:
...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.:
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:
project in (A, B))
(project = JRA OR project = CONF) is equivalent to this query:(project in (JRA, CONF)), only the second query will be translated.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
JQL has a list of reserved characters:
" ")"+""."","";""?""|""*""/""%""^""$""#""@""[""]"If you wish to use these characters in queries, you need to:
') or double quote-marks (")); andFor example:
summary ~ "\\[example\\]"
Note that there is an additional list of reserved characters for Text Searches, which applies to the following fields:
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.)
Note that there is an additional list of reserved words for Text Searches, which applies to the following fields: