Jira Query Language (JQL) – What Beginners Need to Know?
In the fast-paced world of project management, staying organized and effectively tracking tasks and projects is crucial for success.
With Jira, the go-to project management tool trusted by countless organizations worldwide, you can streamline workflows and improve productivity.
However, as the number of projects and boards grows, it becomes increasingly challenging to navigate through the vast sea of issues.
In this article, we will dive into the world of Jira Query Language (JQL) and unveil the secret to smartly managing and finding specific issues.
1. How Does Jira Help in Project Management?
- Jira helps to document, organize, and track functional & non-functional requirements and map them to corresponding test cases for software development projects
- It provides agile teams to collaborate using Scrum and Kanban boards
- Can be configured to any project type
- Integrates with Atlassian tools to develop software
- Design detailed roadmaps, handle dependencies, and share plans & progress in product development projects
- Easy to manage tasks and ensure delivery before due dates
- Streamlines bug tracking and resolution process
If you’re unfamiliar with Jira software, you can check out this video. It has insights that beginners need to know on how to use Jira for project management & activity tracking.
2. What is Jira Query Language?
In simple words, Jira Query Language (JQL) is a query language used to extract specific data from a database using text queries.
To elaborate, Jira is a popular issue & project tracking software built by Atlassian, which is similar to a database with contains details about issues. In this database, looking for specific information will be quite hard as looking for your beloved’s ring in the ocean.
As a solution for this, comes in JQL. Jira Query Language, in short, JQL, is a query language that enables you to create your own structured queries to quickly retrieve the desired issue/set of issues.
Importance of JQL
JQL is widely adopted by project managers, software development teams, support teams, and other Jira users.
Mastering the JQL query language empowers you to leverage the JQL software like a pro. Using keywords, operators, and functions, you can construct the queries. Why is JQL essential?
– Search for issues based on various criteria, including project name, issue type, status, assignee, priority, etc.
– Supports a range of operators to compare values, combine conditions, and perform text matching.
– Proves particularly valuable for agile project management teams, as it helps maintain clarity and alignment among team members and stakeholders.
– Enables quick access to relevant information and facilitates focusing on essential tasks.
3. What do You Need to Know about JQL?
Every issue will have a unique project name, issue key, assignee, status, time taken, and so on.
First, while you’re looking for a specific detail in Jira, you’ve to start from the ‘search’ bar. Before we move onto the process of creating JQL queries, you’ll have to first understand the types of searches in Jira.
|Quick Search||Use this search while you’re familiar with the project name/issue key|
|Basic Search||Not sure about the project details, enable the ‘View all’ button. Filters can be applied|
|Advanced Search||Requires JQL text queries eliminating the need for filter options|
JQL knowledge is mainly required when you do an advanced search. Queries can be constructed using a combination of keywords, operators, fields, and values. These well-structured queries can be used to search for issues under specific categories, like, project name, issue type, status, assignee, priority, and more.
4. Key Components & Operators of JQL Queries
Queries consist of interconnected components that work together to extract specific information from a database. The basic syntax/structure of a JQL query can be something like below,
|Field + Operator + Value + Function + Keyword|
1) Field – Specific categories that narrow down your search. For example, project, issue key, assignee, status, reporter, resolution, and so on.
Example Syntax – AffectedVersion
|Find issues with an affected version of “Big Ted”.|
affectedVersion = “Big Ted”
Example Syntax – Attachments
|Find issues that don’t have attachments.|
attachments IS EMPTY
Example Syntax – Category
|Find issues in a particular project under the projects category “Alphabet Projects”. |
category = “Alphabet Projects”
Example Syntax – Comment
|Find issues with this comment – “My PC is quite old”. |
comment ~ “\”My PC is quite old”
To know all the other fields available, check out the link.
2) Operator – Defines your purpose of search using mathematical symbols. Few operators including =, !=, >, <. Here is a complete list of JQL operators.
Example Syntax – Equals (=)
|Find all issues that were created by Mike.|
reporter = “Mike”
Example Syntax – Not equals (!=)
|Find all issues that are assigned except Mike.|
assignee != Mike
|Find all issues that were reported by me but are not assigned to me.|
reporter = currentUser() and assignee != currentUser()
|Find all issues where the Reporter or Assignee is anyone except Mike.|
assignee != “Mike” or reporter != “Mike”
|Find all issues that are not unassigned.|
assignee != null
Example Syntax – Greater than (>) and Less than (<)
|Find all issues where priority is higher than “Normal”.|
priority > normal
|Find all issues with less than 4 votes.|
votes < 4
Example Syntax – Greater than equals (>=) and Less than equals (<=)
|Find all issues due on or after 20/05/2023.|
duedate >= “2023/05/20”
|Find all issues created in the last five days.|
created >= “-5d”
|Find all issues that have not been updated in the past month 30 days.|
updated <= “-4w 2d”
Example Syntax – Contains (~)
|Find all issues where the summary contains the word “win”. |
summary ~ win
|Find all issues where the summary contains the word “issue” and the word “collector”.|
summary ~ “issue collector”
|Find all issues where the summary contains the exact phrase “full screen”.|
summary ~ “\”full screen\””
To know about the rest of the operators, click the link.
3) Value – Information in a given field for a particular search. For example, as you search with an assignee, issues allocated to that particular assignee appear on the board.
4) Function – Retrieves only the true results specified within the function and clause.
Example Syntax – Approved()
|Find all requests that have been approved.|
approvals = approved()
Example Syntax – Approver()
|Find requests that require or required approval by Kennedy.|
approvals = approver(Kennedy)
Example Syntax – CascadeOption()
|Find issues where a custom field (“Location”) has the value “USA” for the first tier and “New York” for the second tier.|
location in cascadeOption(“USA”,”New York”)
|Find issues where a custom field (“Location”) has the value “USA” for the first tier and no value for the second tier.|
location in cascadeOption( “USA” ,none)
Example Syntax – Completed()
|Find issues where the time to first response has completed at least one cycle.|
“Time to First Response” = completed()
Example Syntax – CurrentUser()
|Find issues that are assigned to me.|
assignee = currentUser()
|Find issues that were reported by me but are not assigned to me.|
reporter = currentUser() AND (assignee != currentUser()
Example Syntax – EndOfDay()
|Find issues due by the end of today.|
due < endOfDay()
|Find issues due by the end of tomorrow.|
due < endOfDay(“+1”)
Example Syntax – EndOfWeek
|Find issues due by the end of next week.|
due < endOfWeek(“+1”)
Example Syntax – EndOfMonth
|Find issues due by the 15th of next month.|
due < endOfMonth(“+15d”)
Example Syntax – EndOfYear
|Find issues due by the end of March next year.|
due < endOfYear(“+3M”)
In this link, you can find all the other functions available.
5) Keyword – Words/phrases that add specific conditions to your queries. And, or, not, empty, null, order by, is and more can be counted as keywords.
Example Syntax – AND
|Find all open issues in a project.|
project = abcd and status = open
|Find all open, urgent issues assigned to Lee.|
status = open and priority = urgent and assignee = Lee
|Find all issues in a project that are not assigned to. |
project = xyz and assignee != Sharon
|Find all issues where neither the Reporter nor the Assignee is Dania or Febin.|
reporter not in (Dania,Febin) and assignee not in (Dania, Febin)
Example Syntax – OR
|Find all issues that were created by either Jack or Rose.|
reporter = Jack or reporter = Rose
Example Syntax – NOT
|Find all issues that are assigned to any user except Frank. |
not assignee = Frank
|Find all issues that were not created by either Pearlin & Diana.|
not (reporter = Pearlin or reporter = Diana)
Example Syntax – EMPTY
|Find all issues without a due date.|
duedate = empty (or) duedate is empty
Example Syntax – NULL
|Find all issues without a due date. |
duedate = null (or) duedate is null
Example Syntax – ORDER BY
|Find all issues without a due date, sorted by creation date.|
duedate = empty order by created
|Find all issues without a due date, sorted by creation date, then by priority (highest to lowest).|
duedate = empty order by created, priority desc
|Find all issues without a due date, sorted by creation date, then by priority (lowest to highest).|
duedate = empty order by created, priority asc
Curious to explore all the keywords? This page contains all that you need.
Mastering JQL is the key that unlocks the hidden vaults of productivity and efficiency within Jira, propelling your project management endeavors to unprecedented heights. JQL empowers you to cut through the noise in a landscape brimming with countless boards and issues, swiftly extracting the precise information you seek.
Winding Up Our Beginner’s Guide of JQL in Project Management
By harnessing the art of constructing smart queries, you gain a formidable advantage like a compass that leads you directly to the heart of specific issues, enabling you to make informed decisions and drive projects forward with clarity and purpose.
If still navigating Jira using JQL feels daunting, there is a solution within your reach. Explore the realm of the project management course offered by Skillcubator. With our expert-led instructions, you can master project management using Jira software.
Enroll today and unlock the world of knowledge to perform productively in your future project management endeavors without wasting time in searching & tracking issues. All you’ve to do is, drop us a word. We’re of immense pleasure to share our expertise with you!