you can use "contains" for 'text' fields if you want it turned to a "LIKE '%whatever%' query, or as a "find me where 'whatever' is" in a 'list:string' field. at this point a bit of code wouldn't hurt :D On Thursday, April 17, 2014 5:07:38 PM UTC+2, Rob Goldsmith wrote: > > Thanks Joe - changing the query to *belongs *did the trick although the > query is still very slow when the list is long - but I'm not sure if that's > primarily because I'm using sqlite at this stage? > > Niphlod - f_postcode is of type text and result is a list of strings (e.g. > ['W1 2TR', 'SW1 5AB' ...] > > On Wednesday, 16 April 2014 13:39:02 UTC+1, Rob Goldsmith wrote: >> >> I tried posting this earlier, but it doesn't seem to have appeared yet - >> so apologies if this comes up twice. >> >> I am writing a web2py application which accepts a UK postcode then >> provides information about nearby postcodes. I have tried two methods, both >> of which work fine when the number of nearby postcodes is relatively few >> (less than a hundred). >> >> Method 1 uses the *contains *method as follows >> >> query &= db.t_properties.f_postcode.contains(result) >> >> where *result *is the list of nearby postcodes >> >> Method 2 does the query first and then uses *exclude* to eliminate the >> unwanted rows as follows >> >> rows.exclude(lambda row: row.f_postcode not in result) >> >> However, when the list of postcodes is larger (>about 100), both methods >> are failing. Method 1 appears to fail because of inherent limitations of >> sqlite (https://sqlite.org/limits.html - SQLITE_LIMIT_VARIABLE_NUMBER - >> albeit that refers to a limit of 999 rather than 99). Method 2 fails with >> the message: >> >> <type 'exceptions.RuntimeError'> maximum recursion depth exceeded in cmp >> >> Now, I'm pretty sure that I can solve it by moving to MySQL or another db >> but I'm pretty sure that I'm not doing the query in the optimal way. Can >> anyone give any advice as to the correct / most efficient way to accomplish >> this? >> >> thanks >> Rob. >> >>
-- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.