On 6/5/07, Techniq <[EMAIL PROTECTED]> wrote: > > I'm going through the wiki cookbook > http://docs.pythonweb.org/display/pylonscookbook/SQLAlchemy+for+people+in+a+hurry > and I'm discovering that even though 'model.class.c.column_name.like' > is available it doesn't perform a LIKE in the query. > > from 'paster shell' > > In [20]: > model.Accounting.select(model.Accounting.c.usr.like('TSmith')) > Out[21]: > [<syslogsql.models.Accounting object at 0x2626d70>, > <syslogsql.models.Accounting object at 0x2626ad0>, > <syslogsql.models.Accounting object at 0x2626910>] > In [22]: model.Accounting.select(model.Accounting.c.usr.like('Smith')) > Out[22]: [] > > ...BUT... > > In [23]: model.Accounting.select(model.Accounting.c.usr.like('%Smith > %')) > Out[27]: > [<syslogsql.models.Accounting object at 0x262d670>, > <syslogsql.models.Accounting object at 0x2626d70>, > <syslogsql.models.Accounting object at 0x2626ad0>, > <syslogsql.models.Accounting object at 0x262d770>, > <syslogsql.models.Accounting object at 0x262d790>, > <syslogsql.models.Accounting object at 0x262d7b0>, > <syslogsql.models.Accounting object at 0x2626910>] > > Should I have to add the '%' around the string?
What is the SQL in those cases? (engine.echo = True) Yes, you need the '%': column.like('%Smith%') The reason is that you may prefer the wildcard in a different position: '%son', 'ra%s'. It should work. I'm using an ORM query like that now, and I think I had a select query with .like before that. -- Mike Orr <[EMAIL PROTECTED]> --~--~---------~--~----~------------~-------~--~----~ 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---