select<T extends HasResultSet, R> method Null safety

SimpleSelectStatement<T, R> select<T extends HasResultSet, R>(
  1. ResultSetImplementation<T, R> table,
  2. {bool distinct = false}
)

Starts a query on the given table.

In drift, queries are commonly used as a builder by chaining calls on them using the .. syntax from Dart. For instance, to load the 10 oldest users with an 'S' in their name, you could use:

Future<List<User>> oldestUsers() {
  return (
    select(users)
      ..where((u) => u.name.like('%S%'))
      ..orderBy([(u) => OrderingTerm(
        expression: u.id,
        mode: OrderingMode.asc
      )])
      ..limit(10)
  ).get();
}

The distinct parameter (defaults to false) can be used to remove duplicate rows from the result set.

For more information on queries, see the documentation.

Implementation

SimpleSelectStatement<T, R> select<T extends HasResultSet, R>(
    ResultSetImplementation<T, R> table,
    {bool distinct = false}) {
  return SimpleSelectStatement<T, R>(resolvedEngine, table,
      distinct: distinct);
}