On Jul 5, 2013, at 5:18 PM, MacVictor <[email protected]> wrote:

> Hi, I try update fields used PostgreSQL, but always i show this errors:
> 
> QLAlchemy: (ProgrammingError) operator does not exist: numeric ~~ unknown
> LINE 1: ... person SET no_card='Test' WHERE person.phone LIKE '%89%...
>                                                              ^
> HINT:  No operator matches the given name and argument type(s). You might 
> need to add explicit type casts.
>  'UPDATE person SET no_card=%(no_card)s WHERE person.phone LIKE %(phone_1)s' 
> {'no_card': u'Test', 'phone_1': '%89%'}
> 
> My query is:
> session.query(Person).filter(Person.phone.like('%89%')).update({Person.no_card:
>  u'Test'}, synchronize_session=False)


well the phone number is being stored here as numeric (not a good idea really, 
phone numbers aren't really "numbers").   So you'd need to cast:

from sqlalchemy import cast

filter(cast(Person.phone, String).like('%89%'))


-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to