This guide explains Jira Query Language (JQL), covering its key components—fields, operators, and values—to help you create customized queries for efficiently searching Jira issues. It also introduces advanced features like Time in Status for tracking issue progress, making it easier to manage and monitor your projects.

Jira Query Language (JQL) is an indispensable tool for anyone using Jira to manage projects, track issues, and streamline workflows. JQL allows you to filter and search through large volumes of issues based on customized criteria, enabling efficient tracking and project management.
In this guide, we’ll walk you through the basics of JQL, including its syntax, operators, and functions, and show you how to construct powerful queries to help you manage your Jira projects more effectively.
Jira Query Language (JQL) is a flexible and dynamic query language used to search for and filter Jira issues. It enables you to create highly customized queries to find exactly the issues you need, whether it’s for project tracking, bug management, team assignment, or even tracking the time issues spend in each workflow status.
At its core, JQL queries consist of three components: field, operator, and value. Understanding these components will allow you to fine-tune your searches and make the most out of Jira.
A basic query might look like this:
project = "PROJ" AND status = "Open"
In this example:
This basic structure is the foundation of all JQL queries. For more advanced tracking, you can use JQL for Time in Status to see how long issues stay in specific statuses, which helps identify bottlenecks or delays in your project workflow.
Fields are essentially the attributes or properties of Jira issues, and they define the basis of your search. Some of the most common fields include:
Example of a query that uses multiple fields:
project = "PROJ" AND assignee = "username" AND priority = High
In Jira Query Language (JQL), operators are used to define how a field and a value should be compared in a query. These operators are essential for refining your search conditions and ensuring your queries return the most relevant issues.
Operators in JQL can be classified into two groups:
Logical operators in JQL enable you to combine multiple conditions for more refined searches. For example, using AND, you can find issues that are both high priority and assigned to a specific user:
priority = High AND assignee = "username". With OR, you can expand your search to find issues in either "Open" or "In Progress" status: status = "Open" OR status = "In Progress".
The three main logical operators are AND, OR, and NOT.
Comparison operators in JQL define how conditions are compared. They are used in conjunction with fields and values to refine your search. Here are the most common operators:
JQL functions are predefined tools in Jira Query Language that allow for more dynamic and flexible queries. These functions perform actions based on the current state of issues, users, or system time, helping you create more powerful and accurate searches.
Functions make your queries adaptable by referencing real-time data, such as the current date, logged-in users, or issues in the active sprint.
Some useful JQL functions include:
These functions can make your queries much more dynamic and adaptable to changing conditions.
You can combine multiple conditions using logical operators (AND, OR, NOT) to create more advanced queries. Parentheses are essential when combining operators to ensure the correct order of evaluation. Here’s an example:
Find issues assigned to the current user that are either high or critical priority and still unresolved:
assignee = currentUser() AND (priority = High OR priority = Critical) AND resolution = Unresolved
You can even combine multiple levels of conditions to handle complex queries with ease.
Here are a few more advanced JQL query examples to help you refine your searches:
These examples demonstrate how JQL can be used to perform highly customized searches across a wide variety of parameters.
Once you’ve created a useful query, you can save it and use it in your Jira dashboards for ongoing monitoring and reporting. Here’s how you can leverage saved filters:
Saved filters are incredibly useful for teams that need to track specific issues on an ongoing basis.
To make your JQL experience more efficient, here are a few tips:
JQL is a robust tool that can greatly improve your efficiency in managing Jira issues. Whether you're looking to track issues based on specific criteria, visualize project progress, or create advanced filters for ongoing reporting, mastering JQL will give you more control over your Jira data. By understanding the syntax, logical operators, functions, and advanced query examples, you can tailor your Jira searches to meet your team’s exact needs.
Start experimenting with JQL in Jira and take advantage of the dynamic querying power it offers to enhance your project tracking and management capabilities.
1. What is JQL?
JQL (Jira Query Language) is a powerful query language used to search, filter, and manipulate issues within Jira. It allows users to create highly customized queries based on specific fields, operators, and values, making it a valuable tool for tracking and managing projects effectively.
2. Is JQL the same as SQL?
No, JQL is not the same as SQL (Structured Query Language). While both are query languages, JQL is specifically designed for searching and filtering data within Jira, whereas SQL is a more general-purpose language used for querying relational databases. JQL is tailored to Jira’s issue-tracking system, using fields like assignee, status, and priority, while SQL is used for databases with structured tables.
3. How to write a JQL query?
To write a JQL query, you need to combine three key components: field, operator, and value. A basic query might look like this:
status = "Open" AND assignee = "username"
In this example:
You can combine multiple conditions using AND, OR, or NOT operators, and use functions like currentUser() or now() for more dynamic searches.
4. What are the common operators used in JQL?
The most commonly used operators in JQL include:
5. Can I search for issues assigned to me using JQL?
Yes, you can use the currentUser() function to find issues assigned to you. For example, assignee = currentUser() will return all issues assigned to the currently logged-in user.
6. How can I filter issues by date in JQL?
You can filter issues by date using functions like now(). For example:
7. How do I save and reuse my JQL queries?
Once you create a useful JQL query, you can save it by clicking Save as after running the query. Saved filters can be accessed later and used in Jira dashboards or reports, allowing you to easily reuse your custom queries for ongoing monitoring.
December 18, 2025
Learn how Jira team performance reports help track progress, improve workflow efficiency, and decision-making with detailed data insights.
Read MoreDecember 17, 2025
Choosing the right Jira time tracking plugin is crucial for improving team efficiency and project management. Key factors such as ease of use, customizability, and real-time insights can significantly impact how you track time and optimize workflows.
Read MoreDecember 16, 2025
This blog explores how Jira Time Tracking Integration can improve cross-team collaboration, reduce delays, and optimize workflows. Discover how RVS Time in Status helps streamline project delivery by providing real-time insights and boosting productivity
Read More