JQL for Beginners: How to Find Issues Faster in Jira


JQL is a powerful tool in Jira that allows you to search, filter, and report on issues. Whether you're a beginner or someone looking to enhance your Jira skills, understanding JQL is essential.
What is JQL?
Jira Query Language (JQL) is a flexible query language used in Jira to find and manipulate issues. It allows you to create advanced search queries to filter issues based on various criteria, enabling efficient project tracking and reporting.
Syntax of JQL
The syntax of JQL is straightforward and consists of the following structure:
Each query is a combination of one or more clauses, where a clause typically consists of:
Field: The attribute of an issue (status, assignee, project).
Operator: Defines the relationship between the field and the value (+, >, <).
Value: The specific data to match the field (open, user, project_name).
<Field> <Operator><Value>
For example:
status = “In Progress“
Functions in JQL
Sharing few functions which are used on daily basis:-
currentUser() – Returns issues assigned to the current user
updatedBy() – Retrieves issues updated by a particular user.
startOfMonth() – Represents the first day of the current month.
startOfDay() – Represents the beginning of the current day.
startOfWeek() – Represents the first day of the current week.
membersOf() – Finds issues assigned to users in a specific group.
openSprints() – Retrieves issues in active sprints.
linkedIssues() – Finds issues linked to a specific issue.
Operators In JQL:
- Comparison Operators: <, >, = , !=
created > startOfWeek()
status != "Done"
- Logical Operator: AND, OR, NOT
created >= startOfMonth() AND created <= now() - Retrives issues created this month.
- Set Operator:
IN - Matches any value in a list
priority IN ("High", "Critical")
NOT IN - Excludes values in a list
WAS - Checks past statuses.
status WAS "In Progress"
WAS IN → Checks multiple past statuses
CHANGED → Identifies changes in a field.
assignee CHANGED AFTER -7d (Finds issues where the assignee changed in the last 7 days.)
status CHANGED FROM “To Do“ TO “ In Progress“ BY “userid“ (This finds issues where the status changed from "In Progress" to "Done", and the change was made by the user)
You can modify this further by adding BEFORE, DURING, or ON for specific date ranges.
Sharing few examples queries:
- Find issues assigned to the current user that were updated in the last 5 days
asignee = currentUser() AND updated >= -5d
- Retrieve all unresolved issues in a specific project.
project = "CRM Upgrade" AND resolution = EMPTY
Explanation: resolution = EMPTY ensures that completed issues (e.g., "Done" or "Closed") are excluded.
- Find issues previously in ‘Blocked’ status but now in progress.
status WAS "Blocked" AND status = "In Progress"
- List all bugs reported in the last 15 days that are not assigned yet
issuetype = Bug AND created >= -15d AND assignee IS EMPTY
- Get issues that were assigned to a user in the past but are now unassigned.
assignee WAS "<userid>" AND assignee IS EMPTY
- Find high-priority issues that were moved to ‘In Progress’ within the last week
priority IN ("High", "Critical") AND status CHANGED TO "In Progress" AFTER -7d
- Get all issues that have linked issues (dependencies or blockers).
issueLinkType IS NOT EMPTY
- Find issues that have been reopened after being resolved.
satus WAS "Resolved" AND status = "Reopened"
- Retrieve issues that have been assigned to the current user at any time in the past.
asignee WAS currentUser()
- List all issues that were created this month and updated within the last 2 days.
ceated >= startOfMonth() AND updated >= -2d
In this article, we explored the basics of JQL, its key operators, and how to use it effectively to filter and track Jira issues. By mastering JQL, you can save time and streamline your workflow in Jira. Now that you understand JQL, try creating your own queries in Jira and see how it improves your issue tracking.
Happy learning!!
Subscribe to my newsletter
Read articles from SK directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
