I tried it but i still get the same error.


On Thu, Dec 22, 2011 at 2:31 PM, Robert Forkel <xrotw...@googlemail.com>wrote:

> conditions = [db.User.id==id]
> if user_name != ' ':
>   conditions.append(db.User.name == user_name)
> elif age != ' ':
>   conditions.append(db.User.age == age)
> elif place != ' ':
>   conditions.append(db.User.place == place)
>
> result = db.User.filter(and_(*conditions)).all()
>
> might do the trick (untested).
>
> On Thu, Dec 22, 2011 at 9:53 AM, Sana klh <sana.kl...@gmail.com> wrote:
> > Hi Robert Forkel,
> >
> > You got it right i am trying to have a combination of expression
> combined in
> > and_.
> >
> > I need to add the attribute only when it is not equal to null.So i tried
> to
> > check if it is not null and then from the expression and pass it to
> filter
> > .But this does not work.
> >
> > I went through the document but unable to figure out how to do this
> through
> > sql.
> >
> >
> > Thank you
> >
> > On Thu, Dec 22, 2011 at 12:11 PM, Robert Forkel <xrotw...@googlemail.com
> >
> > wrote:
> >>
> >> You may want to look at the tutorial [1]. In the code you pasted you
> >> are assembling a string to pass to filter. While you can do that (but
> >> then it should be proper sql not python!), what you want to do is
> >> passing a python expression like db.User.age==age, or a combination of
> >> expressions combined using and_, or_, etc.
> >>
> >> [1]
> >>
> http://www.sqlalchemy.org/docs/orm/tutorial.html#common-filter-operators
> >>
> >> On Thu, Dec 22, 2011 at 6:34 AM, Sana klh <sana.kl...@gmail.com> wrote:
> >> > I am getting the following error
> >> >
> >> > ProgrammingError: (ProgrammingError) (1064, "You have an error in your
> >> > SQL
> >> > syntax; check the manual that corresponds to your MySQL server version
> >> > for
> >> > the right syntax to use near '== 1,db.User.age==23,d' at line 3")
> >> >
> >> >
> >> > Is there any way by which i can generate dynamic query?
> >> >
> >> > Thank you
> >> >   Sana
> >> >
> >> >
> >> >
> >> > On Thu, Dec 22, 2011 at 4:40 AM, Jackson, Cameron
> >> > <cameron.jack...@thalesgroup.com.au> wrote:
> >> >>
> >> >> You might get more help if you provide more details. What error are
> you
> >> >> getting?
> >> >>
> >> >> -----Original Message-----
> >> >> From: sqlalchemy@googlegroups.com [mailto:
> sqlalchemy@googlegroups.com]
> >> >> On
> >> >> Behalf Of Sana
> >> >> Sent: Thursday, 22 December 2011 2:50 AM
> >> >> To: sqlalchemy
> >> >> Subject: [sqlalchemy] SqlAlchemy dynamic query generation
> >> >>
> >> >> Hi All,
> >> >>
> >> >> I am trying to do query based on the user input as follows
> >> >>
> >> >> condition = 'and_(db.User.id == id'
> >> >> if user_name != ' ':
> >> >>    condition += ',db.User.name == user_name'
> >> >> elif age != ' ':
> >> >>    condition += ',db.User.age == age'
> >> >> elif place != ' ':
> >> >>    condition += ',db.User.place == place'
> >> >>
> >> >> where = condition+')'
> >> >>
> >> >> result = db.User.filter(where).all()
> >> >>
> >> >>
> >> >> But Im getting error when i do this.
> >> >>
> >> >> Is there any way by which i can do this
> >> >>
> >> >>
> >> >> Thank you
> >> >>   Sana
> >> >>
> >> >> --
> >> >> You received this message because you are subscribed to the Google
> >> >> Groups
> >> >> "sqlalchemy" group.
> >> >> To post to this group, send email to sqlalchemy@googlegroups.com.
> >> >> To unsubscribe from this group, send email to
> >> >> sqlalchemy+unsubscr...@googlegroups.com.
> >> >> For more options, visit this group at
> >> >> http://groups.google.com/group/sqlalchemy?hl=en.
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> -------------------------------------------------------------------------
> >> >> DISCLAIMER: This e-mail transmission and any documents, files and
> >> >> previous e-mail messages attached to it are private and confidential.
> >> >> They may contain proprietary or copyright material or information
> that
> >> >> is subject to legal professional privilege.  They are for the use of
> >> >> the intended recipient only.  Any unauthorised viewing, use,
> >> >> disclosure,
> >> >> copying, alteration, storage or distribution of, or reliance on, this
> >> >> message is strictly prohibited.  No part may be reproduced, adapted
> or
> >> >> transmitted without the written permission of the owner.  If you have
> >> >> received this transmission in error, or are not an authorised
> >> >> recipient,
> >> >> please immediately notify the sender by return email, delete this
> >> >> message and all copies from your e-mail system, and destroy any
> printed
> >> >> copies.  Receipt by anyone other than the intended recipient should
> not
> >> >> be deemed a waiver of any privilege or protection.  Thales Australia
> >> >> does not warrant or represent that this e-mail or any documents,
> files
> >> >> and previous e-mail messages attached are error or virus free.
> >> >>
> >> >>
> >> >>
> -------------------------------------------------------------------------
> >> >>
> >> >> --
> >> >> You received this message because you are subscribed to the Google
> >> >> Groups
> >> >> "sqlalchemy" group.
> >> >> To post to this group, send email to sqlalchemy@googlegroups.com.
> >> >> To unsubscribe from this group, send email to
> >> >> sqlalchemy+unsubscr...@googlegroups.com.
> >> >> For more options, visit this group at
> >> >> http://groups.google.com/group/sqlalchemy?hl=en.
> >> >>
> >> >
> >> > --
> >> > You received this message because you are subscribed to the Google
> >> > Groups
> >> > "sqlalchemy" group.
> >> > To post to this group, send email to sqlalchemy@googlegroups.com.
> >> > To unsubscribe from this group, send email to
> >> > sqlalchemy+unsubscr...@googlegroups.com.
> >> > For more options, visit this group at
> >> > http://groups.google.com/group/sqlalchemy?hl=en.
> >>
> >> --
> >> You received this message because you are subscribed to the Google
> Groups
> >> "sqlalchemy" group.
> >> To post to this group, send email to sqlalchemy@googlegroups.com.
> >> To unsubscribe from this group, send email to
> >> sqlalchemy+unsubscr...@googlegroups.com.
> >> For more options, visit this group at
> >> http://groups.google.com/group/sqlalchemy?hl=en.
> >>
> >
> > --
> > You received this message because you are subscribed to the Google Groups
> > "sqlalchemy" group.
> > To post to this group, send email to sqlalchemy@googlegroups.com.
> > To unsubscribe from this group, send email to
> > sqlalchemy+unsubscr...@googlegroups.com.
> > For more options, visit this group at
> > http://groups.google.com/group/sqlalchemy?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups
> "sqlalchemy" group.
> To post to this group, send email to sqlalchemy@googlegroups.com.
> To unsubscribe from this group, send email to
> sqlalchemy+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/sqlalchemy?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to