> On Jun 23, 3:32 pm, Ash <[email protected]> wrote:
> > Hello,
> >
> > I am tryin to make the dynamic where clause using
> append_whereclause.
> >
> > But how i can do that, For eg :
> >
> > I have a==b and c in (1,2,3,4) or d like %s
> >
> > So i made three sqlalchemy expression
> >
> > 1. a==b
> > 2. c in (1,2,3,4) [ using in_]
> > 3. d like %s [using like]
> >
> > now i want this 3 to stuff in where clause .
> >
> > I created select like sel = select()
> >
> > How can i make the where clause which have and and or both uisng
> > append_whereclause.
> >
I think append_whereclause always uses AND, so you need to connect these
conditions into a single clause and call append_whereclause just once.
It's not clear how you want the grouping of your conditions to work. Is it:
(a==b AND c in (1, 2, 3, 4)) OR d like %s
Or
a==b AND (c in (1, 2, 3, 4) OR d like %s)
I think you need to do something like this (for the first option):
from sqlalchemy import and_, or_
clause = or_(and_(a == b, c.in_([1, 2, 3, 4])),
d.like(something))
sel.append_whereclause(clause)
You may also be able to use the '&' and '|' operators, as long as you are
careful with brackets. See the docs at
http://www.sqlalchemy.org/docs/05/sqlexpression.html#conjunctions
Hope that helps,
Simon
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---