JQL for Beginners: How to Find Issues Faster in Jira

SKSK
4 min read

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:

  1. Field: The attribute of an issue (status, assignee, project).

  2. Operator: Defines the relationship between the field and the value (+, >, <).

  3. 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:

  1. Comparison Operators: <, >, = , !=

created > startOfWeek()

status != "Done"

  1. Logical Operator: AND, OR, NOT

created >= startOfMonth() AND created <= now() - Retrives issues created this month.

  1. 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:

  1. Find issues assigned to the current user that were updated in the last 5 days

asignee = currentUser() AND updated >= -5d

  1. 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.

  1. Find issues previously in ‘Blocked’ status but now in progress.

status WAS "Blocked" AND status = "In Progress"

  1. List all bugs reported in the last 15 days that are not assigned yet

issuetype = Bug AND created >= -15d AND assignee IS EMPTY

  1. Get issues that were assigned to a user in the past but are now unassigned.

assignee WAS "<userid>" AND assignee IS EMPTY

  1. 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

  1. Get all issues that have linked issues (dependencies or blockers).

issueLinkType IS NOT EMPTY

  1. Find issues that have been reopened after being resolved.

satus WAS "Resolved" AND status = "Reopened"

  1. Retrieve issues that have been assigned to the current user at any time in the past.

asignee WAS currentUser()

  1. 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!!

0
Subscribe to my newsletter

Read articles from SK directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

SK
SK