On Wed, Apr 14, 2010 at 01:09:41PM -0500, [email protected] wrote:
> I've got a model with a Contact object. It has separate attributes for
> firstName and lastName. In various parts of my app I'd like to be able to
> provide a search function where a user could type in part of a person's name
> that included the first name and part of the last and then display a list of
> those matching.
>
> I know I can search on just the firstName using:
>
> contacts =
> Contact.select(Contact.q.firstName.contains(searchText.encode('utf8')))
>
> But, if someone types 'Jim Steil' in the search box, this filter would
> exclude the record for me because of the last name being there. I'm
> wondering if there is some magic in SQLObject that will allow me to apply
> this search string against the combination of the firstName and lastName
> attributes of the Contact object.
SQLObject doesn't abstract away string concatenation, and that's bad
because most databases except MySQL use '||' operator, not a function.
You want something like
from sqlobject.sqlbuilder import SQLOp, CONTAINSSTRING
Contact.select(CONTAINSSTRING(SQLOp('||', SQLOp('||', Contact.q.name, ' '),
Contact.q.surname), 'Test1 One'))
SQL query is
SELECT id, name, surname FROM contact WHERE ((((name) || (' ')) || (surname))
LIKE ('%Test1 One%'))
Oleg.
--
Oleg Broytman http://phd.pp.ru/ [email protected]
Programmers don't die, they just GOSUB without RETURN.
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
sqlobject-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss