Filtering
where keeps only rows that match a condition:
select {id, total}
from 'orders.json'
where status = 'paid'
Filtering happens after joins and before grouping or projection.
Combine conditions
Use and when both conditions must match:
where status = 'paid' and total >= 100
Use or when either condition may match:
where status = 'paid' or status = 'shipped'
Precedence
and is evaluated before or:
a = 1 or b = 2 and c = 3
This means the same as:
a = 1 or (b = 2 and c = 3)
Use parentheses whenever they make the intended condition clearer:
where (status = 'paid' or status = 'shipped') and total >= 100
JQL short-circuits logical conditions. Once the left side determines the answer, the right side is not evaluated.
See Comparisons for every operator available inside a condition.