Jira search: How to find issues quickly using JQL
JQL (Jira Query Language) is Atlassian's native query syntax for finding issues in Jira by combining fields, operators, and values into precise search strings. Instead of scrolling through a Jira dashboard for hours, you write one query and get exactly the issues you need.
This guide covers how Jira search works, how to build a JQL query, and the syntax you need to save and share filters across your team.
Getting started with search in Jira
Jira ships with two search modes: basic and advanced. Basic search is the friendlier of the two and lives in the search bar at the top right of the Jira dashboard. Use it to look up:
A specific issue: Locate issues by their key, like JobKey-11.
Text: Find issues based on keywords in the summary, description, and comments.
Smart Query: Type "my open bugs" and Jira returns bugs assigned to you.
The search bar's drop-down menu also lets you filter by:
Issues
Boards
Projects
Filters
Plans
Assignees
That covers Jira's basic search. It works for quick lookups, but the moment you need multiple conditions, you'll want the advanced side.
Advanced searches in Jira
Advanced search runs on Jira Query Language (JQL). JQL lets you assemble criteria that basic search can't touch: date ranges, custom fields, negations, functions, and combinations of all of them.
How to create a JQL query
To open the advanced search:
1. Open the Jira project related to the search. 1. Select "Issues" from the navigation sidebar. 1. Click "Advanced Issue Search". 1. In the search window, click "JQL" to switch to Jira Query Language mode. 1. Define the search criteria. 1. Click the "Search" button to the right of the search window.
How to save and share a JQL filter
JQL queries can be saved as filters and shared with the rest of the team, so nobody has to rebuild the same query twice.
Once you've run a JQL query:
1. Click the "Save as" filter to open the Save Filter window. 1. Name the filter. 1. Enable the "Sync Filter" toggle so it appears on the dashboard and on Jira Software boards. 1. Define who can access the filter. 1. Click "Save".
Essential JQL syntax
A JQL query is a string of components that describe the issues you want. Every query has at least three parts — a field, an operator, and one or more values or functions — and can be modified by keywords.
Here's how each piece fits together, with examples.
Field
Fields tell JQL where to look. Common ones include:
Priority: Finds issues at a given priority level.
priority = High
priority = 10000
Description: Finds issues whose description contains a specific word or phrase.
description ~ "Please see screenshot"
IssueType: Returns issues of a specific type.
issueType = Bug
issueType = Improvement
Labels: A custom field for tagging issues into your own categories.
labels = "labelName"
DueDate: Finds issues by their due date.
due = "2011/01/15"
FixVersion: Finds issues assigned to a fix version by name or ID.
fixVersion in ("3.14", "4.2")
Operator
Operators define how a field relates to a value. The common ones:
Equals (=): Returns results that match the value.
assignee = "Nancy Lewis"
Not equals (!=): Returns issues where the field does not match. Note: != skips issues where the field has no value at all.
assignee != "Nancy Lewis"
Greater than (>) or less than (<): Finds issues where the value is above or below the one you specify.
votes > 10
priority < High
Greater than or equals (>=) and less than or equals (<=): Include matches on the value itself.
votes >= 10
priority <= Normal
Contains (~): Matches text within a field. Works only on text fields like Summary or Description.
summary ~ "word string"
description ~ "specific phrase"
Value
Values follow the operator and define the data you want. For high-priority issues:
priority = High
"High" is the value being retrieved.
Keywords
Keywords change the logic of a query so you can combine or negate clauses:
AND: Returns issues that match both clauses.
project = LearnJQL AND status = "In Progress"
OR: Returns issues that match either clause.
project = LearnJQL OR status = "In Progress"
NOT: Negates a clause or a full query, returning issues that don't match.
not assignee = jsmith
not (reporter = jsmith or reporter = lewis)
Functions
JQL functions are words followed by parentheses that may contain values or fields. They perform a calculation on Jira data or on what's inside the parentheses.
To find issues assigned to you and due before the end of today:
assignee = currentUser() AND due < endOfDay()
To push that out to end of tomorrow, pass an offset:
assignee = currentUser() AND due < endOfDay("+1")
Jira search examples
A few queries showing how the components come together:
To pull bugs reported by a specific team member on a specific project:
reporter = nlewis AND project = LearnJQL
AND ensures both conditions are met — issues Nancy Lewis reported inside the LearnJQL project.
To find issues in several projects marked with one of several priorities:
priority in (Blocker, Critical) AND project in (LearnJQL, JQLlessons, StudyJQL)
The "in" operator matches any of the values inside the parentheses — issues with Critical or Blocker priority across any of the three listed projects.
To identify unassigned issues created in the last 24 hours:
assignee is empty AND created >= "-1d"
"Is empty" returns issues with a blank assignee field. Relative dates like "-1d" evaluate one day before the query runs.
Enhancing Jira search and reporting with Tempo
Tempo's tools plug into Jira and widen the data JQL can reach, so your advanced queries pull in more than what native Jira exposes.
Tempo Timesheets, for example, layers custom dashboards and automated reports on top of your Jira search results, adding time and resource-tracking data to the pool your queries can filter on.












































