함수: minusWherePredicates()
function minusWherePredicates(fromPredicate, subtractPredicate):
| BasicExpression<boolean>
| null;
정의 위치: packages/db/src/query/predicate-utils.ts:371
두 where 조건자 간의 차이를 계산합니다: fromPredicate AND NOT(subtractPredicate).
단순화된 조건자를 반환하며, 차이를 단순화할 수 없으면 null을 반환합니다
(이 경우 호출자는 전체 fromPredicate를 가져와야 합니다).
매개변수
fromPredicate
빼는 대상 조건자입니다
BasicExpression<boolean> | undefined
subtractPredicate
뺄 조건자
BasicExpression<boolean> | undefined
반환값
| BasicExpression<boolean>
| null
단순화된 차이 또는 단순화할 수 없는 경우 null
예제
// Range difference
minusWherePredicates(
gt(ref('age'), val(10)), // age > 10
gt(ref('age'), val(20)) // age > 20
) // → age > 10 AND age <= 20
// Set difference
minusWherePredicates(
inOp(ref('status'), ['A', 'B', 'C', 'D']), // status IN ['A','B','C','D']
inOp(ref('status'), ['B', 'C']) // status IN ['B','C']
) // → status IN ['A', 'D']
// Common conditions
minusWherePredicates(
and(gt(ref('age'), val(10)), eq(ref('status'), val('active'))), // age > 10 AND status = 'active'
and(gt(ref('age'), val(20)), eq(ref('status'), val('active'))) // age > 20 AND status = 'active'
) // → age > 10 AND age <= 20 AND status = 'active'
// Complete overlap - empty result
minusWherePredicates(
gt(ref('age'), val(20)), // age > 20
gt(ref('age'), val(10)) // age > 10
) // → {type: 'val', value: false} (empty set)