Skip to content

Commit ac9c37b

Browse files
committed
where exists fix
1 parent 1b1a3c8 commit ac9c37b

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

orm/query_where.go

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -246,21 +246,25 @@ func (q *Query[T]) generateWhereStr(wheres []where, bindings *[]any) string {
246246
}
247247

248248
func (q *Query[T]) WhereExists(sq *SubQuery) *Query[T] {
249-
q.bindings = append(q.bindings, sq.bindings...)
250-
return q.Where("EXISTS (" + sq.raw + ")")
249+
t := q.Where("EXISTS (" + sq.raw + ")")
250+
t.wheres[len(t.wheres)-1].RawBindings = sq.bindings
251+
return t
251252
}
252253

253254
func (q *Query[T]) OrWhereExists(sq *SubQuery) *Query[T] {
254-
q.bindings = append(q.bindings, sq.bindings...)
255-
return q.OrWhere("EXISTS (" + sq.raw + ")")
255+
t := q.OrWhere("EXISTS (" + sq.raw + ")")
256+
t.wheres[len(t.wheres)-1].RawBindings = sq.bindings
257+
return t
256258
}
257259

258260
func (q *Query[T]) WhereNotExists(sq *SubQuery) *Query[T] {
259-
q.bindings = append(q.bindings, sq.bindings...)
260-
return q.Where("NOT EXISTS (" + sq.raw + ")")
261+
t := q.Where("NOT EXISTS (" + sq.raw + ")")
262+
t.wheres[len(t.wheres)-1].RawBindings = sq.bindings
263+
return t
261264
}
262265

263266
func (q *Query[T]) OrWhereNotExists(sq *SubQuery) *Query[T] {
264-
q.bindings = append(q.bindings, sq.bindings...)
265-
return q.OrWhere("NOT EXISTS (" + sq.raw + ")")
267+
t := q.OrWhere("NOT EXISTS (" + sq.raw + ")")
268+
t.wheres[len(t.wheres)-1].RawBindings = sq.bindings
269+
return t
266270
}

0 commit comments

Comments
 (0)