The Jira Query Language (JQL) cheat sheet

Jira Query Language (JQL) lets you search, filter, and report on issues within a Jira workspace by using flexible, powerful queries for precise results. It’s how you search Jira when clicking through filters is not enough.

JQL is built for anyone who needs precise, repeatable searches across work items: project managers pulling a status report, admins auditing a backlog, or engineers hunting down every bug tied to a specific release.

The 4 building blocks of a JQL query

Every JQL clause is built from the same four pieces:

Part

What it does

Example

Field

The attribute you are searching on

priority, assignee, fixVersion

Operator

Relates the field to a value

=, !=, <, IN

Value or function

What you are matching against

"High", currentUser()

Keyword

Links multiple clauses together

AND, OR, ORDER BY

Common operators

Operators define how Jira compares a field with the value you’re searching for. Use them to find exact matches, combine conditions, search across a list of values, or check whether a field is empty.

Operator

Meaning

Example

=

Exact match

project = "Marketing Campaign"

!=

Not equal to

assignee != currentUser()

AND

Combines conditions, all must be true

priority = High AND status = Open

OR

Combines conditions, either can be true

status = Open OR status = Reopened

IN

Matches any value in a list

priority IN (High, Highest)

~

Contains (text search)

summary ~ "login error"

IS EMPTY

Field has no value

assignee IS EMPTY

Key JQL functions and how to use them

JQL functions enhance query capabilities by allowing users to perform more complex operations, sort results, and filter based on dynamic criteria. These functions include:

Function

Description

Example

ORDER BY

Sorts results by a field.

project = "Marketing" ORDER BY created DESC

WAS

Finds issues that were previously in a particular state.

status WAS "Resolved" AND status = "Open"

CHANGED

Identifies issues modified within a timeframe.

status CHANGED AFTER -1w

MEMBERSOF

Filters issues by group membership.

assignee IN MEMBERSOF("developers")

JQL examples for common Jira use cases

Here are a few ways you can use JQL in Jira.

Use case

JQL query

Find all high-priority issues assigned to you

priority = High AND assignee = currentUser()

List overdue issues in a specific project

project = "Customer Support" AND duedate < now() AND status != Closed

Show recently created issues

created >= -7d ORDER BY created DES

Advanced JQL techniques

Use advanced search with JQL to leverage custom fields and complex queries.

Technique

Example

How to use it

Using custom fields

"Custom Field Name" ~ "search term"

Search within custom fields for more tailored queries.

Subqueries

project IN subTaskIssueTypes() AND assignee = currentUser()

Filter issues based on the results of another query.

Specific issue types

issuetype = Epic AND status != Done

Target particular issue types and statuses.

How to catch mistakes before you run a search

Catching mistakes in JQL editor

The current JQL editor in Jira Cloud is built to catch problems as you type instead of after you hit search:

  • Error checking: Invalid syntax is flagged immediately with guidance to fix it

  • Syntax highlighting: Fields, operators, values, and functions are color-coded

  • Autocomplete: Relevant keywords and functions appear as you type

  • Multi-line editing: Expand the editor and use line numbers to find errors

  • Readable user references: Names and avatars replace raw account IDs

  • JQL debugger: When a query returns an error, Rovo suggests a corrected query that you can review and accept

Search with Rovo

You do not need to memorize any of the JQL syntax above to run a precise search. Rovo, Atlassian's AI, translates what you type into JQL automatically.From the Jira search bar, select Ask Rovo and type your question the way you would say it out loud. For example:

"Find all bugs reported in the mobile app project this month"

Rovo converts that into the matching JQL, runs the search, and shows you both the results and the JQL it generated underneath.That last part matters: it is a genuinely useful way to learn JQL by example, since you can see exactly which fields, operators, and functions your plain English question mapped to.If a query is too complex for Rovo to resolve in Basic mode, it automatically switches to JQL mode to give you a more accurate result. You can switch back to Basic at any time from the more actions menu.

When Rovo search works best

When to switch to JQL directly

You know roughly what you want but not the exact field names or syntax

You need precise, repeatable queries for saved filters, boards, or dashboards

You are searching using everyday language and keywords from your work items, spaces, or boards

Your query needs functions or logic that cannot be expressed in natural language reliably

You want to learn JQL syntax as you go

You are searching in a language other than English

JQL: Frequently asked questions

How can JQL help me find specific issues in Jira?

JQL lets you create custom queries to filter issues by fields like assignee, status, project, or date, so you can quickly locate the issues that matter most to you.

Can I save and share my JQL queries with my team?

You can save your JQL searches as filters and share them with teammates, making it easy for everyone to access the same set of issues.

What are some common use cases for JQL in project management?

Teams often use JQL to track overdue tasks, monitor sprint progress, identify blockers, and generate reports that fit their workflow.

Are there any tips for writing more advanced JQL queries?

By using operators, functions, and combining multiple criteria with AND/OR, you can build complex queries for detailed issue tracking and reporting.