如何在Jira API查询中使用JQL开头运算符过滤自定义字段值
Jira自定义字段前缀匹配JQL构造方案
错误原因
你当前的写法存在两个问题:
- JQL模糊匹配运算符用法错误:前缀匹配的
~运算符需要放在字段和匹配值之间,不能写入值的内部 - URL未做特殊字符转义:JQL中的方括号、双引号、通配符属于URL特殊字符,未编码会触发400参数错误
正确JQL语句
匹配cf[10025]值以P00开头的JQL写法如下:cf[10025] ~ "P00*"
要点说明:
- 模糊匹配运算符
~放在字段与匹配值中间 - 前缀末尾加通配符
*代表匹配后续任意字符 - 匹配值使用双引号包裹,适配所有Jira版本的语法要求
正确请求构造
直接使用编码后的URL
编码后符合规范的请求URL示例:https://example.com/rest/api/2/search?maxResults=500&jql=cf%5B10025%5D%20~%20%22P00*%22&fields=id,key,issuetype,status,customfield_10025
Python代码示例
如果使用Python的requests库调用,无需手动编码,直接通过params参数传递即可,示例代码:
import requests JIRA_DOMAIN = "https://example.com" API_TOKEN = "你的Jira接口凭证" url = f"{JIRA_DOMAIN}/rest/api/2/search" params = { "maxResults": 500, "jql": 'cf[10025] ~ "P00*"', "fields": "id,key,issuetype,status,customfield_10025" } headers = { "Authorization": f"Bearer {API_TOKEN}", "Content-Type": "application/json" } resp = requests.get(url, params=params, headers=headers) resp.raise_for_status() data = resp.json()
排查说明
如果请求仍返回错误,可先按以下步骤排查:
- 确认
cf[10025]字段类型为文本类(单行文本、多行文本),选择类、数字类字段不支持~模糊匹配 - 先在Jira网页端高级搜索中测试JQL语句是否能正常返回结果,确认语句正确性后再调用接口
内容的提问来源于stack exchange,提问作者jgtrz
相关产品推荐
相关产品推荐

