I used this compact way and i noticed it only returns one record.

for example

table db.badass
id   name   value
1    trump   10
2    trump   20
3    hilary    30

db.badass(name="trump")
only returns record with id =1

Regards
António

2016-11-21 15:47 GMT+00:00 Massimo Di Pierro <[email protected]>:

> It depends
>
> a query is always field==value so you can do
>
>    query = db.table.field ==  value
>    row = db(query).select(limitby=(0,10)).first()
>
> or
>
>    row = db.table(query)
>
> (they are equivalent)
>
> But db.table(...) can take an "implicit query"
>
>    db.table(fieldname=value)
>
> which is a more compact way to do
>
>    db.table(db.table.field==value)
>
> The most common way to use db.table(...) is this
>
>    db.table(id)
>
> or
>
>    db.table(id, fieldname=value) # returns the record only of the
> fieldname==value
>
> or
>
>    db.table(id, query) # returns the record only if the query is true.
>
>
>
> On Sunday, 20 November 2016 09:08:38 UTC-6, Meinolf wrote:
>>
>> Hi Massimo
>>
>> Just came across this post and got a bit alarmed, so when i check if a
>> record exists i don't have to use the usual '==' but instead '=' ?
>>
>> On Monday, October 10, 2011 at 3:55:27 PM UTC+2, Massimo Di Pierro wrote:
>>>
>>> row = db.postcode_cache(postcode=postcode)
>>> if not row:
>>> db.postcode_cache.insert(postcode=postcode,nearset=nearest)
>>> elif not row.nearest: row.update_record(nearset=nearest)
>>> else: pass # do nothing
>>>
>>> On Oct 10, 8:22 am, Chris Rowson <[email protected]> wrote:
>>> > Hi list,
>>> >
>>> > I have a database table which looks like this:
>>> >
>>> > postcode_cache
>>> > ------------------------
>>> > postcode (UNIQUE)
>>> > lat
>>> > lon
>>> > nearest
>>> >
>>> > I want to test first whether or not a record exists for 'postcode' and
>>> > if a record does exist, I want to check whether the 'nearest' field
>>> > contains any data.
>>> >
>>> > I've tried this:
>>> >
>>> > if db(db.postcode_cache.postcode==postcode).select().first()==None:
>>> >     create_a_new_postcode_record()
>>> >
>>> > elif 
>>> > db(db.postcode_cache.postcode==postcode).select(db.postcode_cache.nearest)=
>>> =None:
>>> >     populate_the_nearest_field()
>>> >
>>> > else:
>>> >     nothing_to_do()
>>> >
>>> > And while the check to establish whether or not a record exists seems
>>> > to work, the check to see whether or not the 'nearest' field within
>>> > the record is populated doesn't seem to work.
>>> >
>>> > Can anyone tell me what I'm doing wrong please?
>>> >
>>> > Thank you,
>>> >
>>> > Chris
>>
>> --
> 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 [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to