Build and optimize JQL (Jira Query Language) queries for searching issues...
Expert assistance for constructing JQL (Jira Query Language) queries to search and filter Jira issues efficiently.
| Operator | Description | Example |
|---|---|---|
= |
Equals | status = "In Progress" |
!= |
Not equals | priority != Low |
>, < |
Greater/less than | created > -7d |
>=, <= |
Greater/less or equal | priority >= High |
~ |
Contains text | summary ~ "login" |
IN |
Matches any value | status IN (Open, "In Progress") |
NOT IN |
Doesn't match | priority NOT IN (Low) |
IS EMPTY |
Field is empty | assignee IS EMPTY |
IS NOT EMPTY |
Field has value | dueDate IS NOT EMPTY |
project = PROJ)status = "In Progress")priority = High)assignee = currentUser())reporter = currentUser())created >= -30d)updated > -7d)type = Bug)labels = urgent)summary ~ "authentication")description ~ "error")-1d, -7d, -30d: Relative dates (days ago)-1w, -4w: Weeks agostartOfDay(), endOfDay(): Day boundariesstartOfWeek(), endOfWeek(): Week boundariescurrentUser(): The logged-in usermembersOf("group-name"): Users in a groupAND: Both conditions must be trueOR: Either condition must be trueNOT: Negate a conditionassignee = currentUser() AND status != Done
type = Bug AND updated >= -7d ORDER BY updated DESC
priority = High AND assignee IS EMPTY AND status != Done
project = PROJ AND created >= -14d AND type IN (Story, Task)
dueDate < now() AND status != Done ORDER BY dueDate ASC
(summary ~ "authentication" OR description ~ "authentication") AND status != Done
assignee IN membersOf("dev-team") AND updated >= startOfWeek()
type = Epic AND issueFunction NOT IN linkedIssuesOf("type = Story")
Start with project:
project = PROJ
Add status filter:
project = PROJ AND status IN ("To Do", "In Progress")
Add assignee:
project = PROJ AND status IN ("To Do", "In Progress") AND assignee = currentUser()
Add time filter:
project = PROJ AND status IN ("To Do", "In Progress") AND assignee = currentUser() AND created >= -30d
Add sorting:
project = PROJ AND status IN ("To Do", "In Progress") AND assignee = currentUser() AND created >= -30d ORDER BY priority DESC, updated DESC
❌ Slow: text ~ "bug"
✅ Fast: summary ~ "bug" OR description ~ "bug"
❌ Slow: created <= now()
✅ Fast: created >= -90d
❌ Verbose: status = "To Do" OR status = "In Progress" OR status = "Review"
✅ Clean: status IN ("To Do", "In Progress", "Review")
Put most restrictive conditions first:
assignee = currentUser() AND status != Done AND type = Bug
When I build a query for you, I'll:
/jira-search to verify resultsproject = PROJ AND status = "To Do" AND sprint IS EMPTY ORDER BY priority DESC
type = Bug AND status = "To Do" AND priority IS EMPTY ORDER BY created DESC
fixVersion = "v2.0" AND status != Done
status = "In Progress" AND updated <= -30d
status = Blocked OR labels = blocked ORDER BY priority DESC
project = PROJ AND "Story Points" IS EMPTY AND type IN (Story, Task)
issueFunction IN parentsOf("status != Done")
comment ~ "needs review"
project IN (PROJ1, PROJ2, PROJ3) AND assignee = currentUser()
When you need a JQL query, I will:
/jira-searchYou: "Find all high-priority bugs assigned to me that were updated in the last week"
Me: "I'll build a JQL query for that:
type = Bug AND priority = High AND assignee = currentUser() AND updated >= -7d ORDER BY updated DESC
Breaking it down:
type = Bug: Only bugspriority = High: High priority onlyassignee = currentUser(): Assigned to youupdated >= -7d: Updated in last 7 daysORDER BY updated DESC: Newest firstLet me search for these issues using /jira-search..."
For more JQL details: