JQL
概述
什麼是 JQL
Jira 官方解釋如下,一種強大,簡單靈活的查詢語句,幫您快速查找項目中的問題,JQL 並非高深莫測,供技術人員使用,對各類用戶角色,包括:開發者,測試,敏捷教練,業務部門用戶。
JQL stands for Jira Query Language and is the most powerful and flexible way to search for your issues in Jira. JQL is for everyone: developers, testers, agile project managers, and business users.
如果做個類比,那麼如果 不同項目中屬性各異的 issue 數據是蛋糕,那 JQL 語句就是 瑞士軍刀,按食客需要切割,完成送餐(展現在報表,儀表盤中)。
![](../__attachments/441417729/image-20230123-014943.png?inst-v=aaeeaf4e-ecea-4ee7-a3fe-a3b12ffc3fbc)
蛋糕與瑞士軍刀
為什麼 XQL 都很重要
不管啥系統,只要是夠深度,精細化,都會有相關查詢語句,數據庫 SQL,Confluence 有 CQL,Insight 有 IQL。數據準確,查詢不卡死,慢查詢,看似增刪改查很簡單,其實功夫很深。如果數據不準確,那可能報表解讀出來與實際不符合的結果。
學習建議
如果英語 OK,推薦 Atlassian University 免費 JQL 入門課程,原汁原味,課後還有練習題。
如果對自己英語沒信心,可看本文後,上demo環境試玩。
如果擔心記不住常用關鍵字,可以把小抄 Cheet Sheet 打印出來。
常用術語
英文名 | 中文名 | 作用 | 示例 |
---|---|---|---|
Fields | 字段 |
| ![]()
|
Operators | 操作符 | 連接字段,值和函數;普通符號顧名思義,特殊的如
| ![]()
|
Functions | 函數 | 系統內置的功能邏輯封裝,劃分的數據範圍,比如 currentUser() 當前登錄用戶,openSprint()當前打開的衝刺 | ![]()
|
value | 值 | 各種類型的數據,文本,數值,日期等 | ABC , 123 , 2023-01-23 , |
Reserved | 保留符號及文字 | 系統內置帶功能,如果想使用,需要查詢,需使用特殊的轉義符來修飾,避免出錯。 單獨使用:前後加 單引號 ' 或雙引號 '' 文本包含:查詢前加 \\ | ![]() |
keyword | 關鍵字 | 連接幾個查詢條件或表達邏輯排序 | AND、OR、NOT、EMPTY、NULL、ORDER BY |
Term modifiers | 術語修飾符 | 模糊查询 |
|
Word stemming | 詞幹擴張 | 近義詞查詢 | ~:加在單詞前 |
試玩
簡單串起來,逐步加條件,
入門:Project in (AAA,BBB)
增強:project = (AAA,BBB) AND assignee in (currentuser())
![](../__attachments/441417729/image-20230123-032321.png?inst-v=aaeeaf4e-ecea-4ee7-a3fe-a3b12ffc3fbc)
經驗
不會寫語句
先簡單界面點選,再點 Switch to JQL,利用好聯想,各種網頁搜索,在現有基礎上修修補補
![](../__attachments/441417729/image-20230123-032901.png?inst-v=aaeeaf4e-ecea-4ee7-a3fe-a3b12ffc3fbc)
系統寫大頭,自己補充小頭
找不到字段
Jira 原生 英文,有時候用中文找 關鍵字,比如 找經辦人,輸入經辦,死活找不到,這時候,用 assignee就ok。
相對引用
經典編程話術,別寫死。
日期和人的選擇多用函數,除非有特定需求,不要固定某幾個人。這樣可以避免變更時,聯動不及時,導致JQL 查詢出來結果不對
可見性問題
經常遇到的問題之一,自己能看到,別人看不到。此時需檢查項目可見權限,問題安全級別
聯動修改
如果在 查詢語句中查詢了工作流,模塊的名稱,更名後 如果JQL 沒及時變更,就會導致查詢出錯。
性能優化
查詢卡頓影響用戶體驗,停頓超過10秒以上,就要考慮優化語句或縮小範圍,查詢優化經驗1,優化經驗2
如果確實需要大數據量查詢,為避免超時,則需要修改 數據庫默認超時時間。
交叉查詢
除了內部 Jira 數據查詢,隨著使用深入,還可能涉及到跨系統交叉查詢,如 JQL + IQL ,JQL+IQL在 eazyBI 中的運用
插件增強
原生的功能不夠用的情況下,需要增強,以下是兩個常用的插件,Scriptrunner for Jira , JQL Search Extensions for Jira , 最受歡迎的10個增強查詢函數