parent
97d67e397d
commit
2de3e0b84c
@ -8,15 +8,20 @@ Advanced filters
|
|||||||
and :py:meth:`db.query() <dataset.Database.query>`. The table find helper method provides
|
and :py:meth:`db.query() <dataset.Database.query>`. The table find helper method provides
|
||||||
limited, but simple filtering options::
|
limited, but simple filtering options::
|
||||||
|
|
||||||
results = table.find((column, operator, value))
|
results = table.find(column={operator: value})
|
||||||
# e.g.:
|
# e.g.:
|
||||||
results = table.find(('name', 'like', '%mole rat%'))
|
results = table.find(name={'like': '%mole rat%'})
|
||||||
|
|
||||||
A special form is using keyword searches on specific columns::
|
A special form is using keyword searches on specific columns::
|
||||||
|
|
||||||
results = table.find(value=5)
|
results = table.find(value=5)
|
||||||
# equal to:
|
# equal to:
|
||||||
results = table.find((value, '=', 5))
|
results = table.find(value={'=': 5})
|
||||||
|
|
||||||
|
# Lists, tuples and sets are turned into `IN` queries:
|
||||||
|
results = table.find(category=('foo', 'bar'))
|
||||||
|
# equal to:
|
||||||
|
results = table.find(value={'in': ('foo', 'bar')})
|
||||||
|
|
||||||
The following comparison operators are supported:
|
The following comparison operators are supported:
|
||||||
|
|
||||||
@ -38,6 +43,18 @@ endswith String ends with
|
|||||||
Querying for a specific value on a column that does not exist on the table
|
Querying for a specific value on a column that does not exist on the table
|
||||||
will return no results.
|
will return no results.
|
||||||
|
|
||||||
|
You can also pass additional SQLAlchemy clauses into the :py:meth:`table.find() <dataset.Table.find>` method
|
||||||
|
by falling back onto the SQLAlchemy core objects wrapped by `dataset`::
|
||||||
|
|
||||||
|
# Get the column `city` from the dataset table:
|
||||||
|
column = table.table.columns.city
|
||||||
|
# Define a SQLAlchemy clause:
|
||||||
|
clause = column.ilike('amsterda%')
|
||||||
|
# Query using the clause:
|
||||||
|
results = table.find(clause)
|
||||||
|
|
||||||
|
This can also be used to define combined OR clauses if needed (e.g. `city = 'Bla' OR country = 'Foo'`).
|
||||||
|
|
||||||
Queries using raw SQL
|
Queries using raw SQL
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user