QueryInterfaceRequest
public struct QueryInterfaceRequest<T>
A QueryInterfaceRequest describes an SQL query.
-
Returns a new QueryInterfaceRequest with a matching predicate added to the eventual set of already applied predicates.
// SELECT * FROM books WHERE books MATCH '...' var request = Book.all() request = request.matching(pattern)If the search pattern is nil, the request does not match any database row.
Declaration
Swift
public func matching(_ pattern: FTS3Pattern?) -> QueryInterfaceRequest<T>
-
A tuple that contains a prepared statement that is ready to be executed, and an eventual row adapter.
Declaration
Swift
public func prepare(_ db: Database) throws -> (SelectStatement, RowAdapter?)Parameters
dbA database connection.
-
The number of rows fetched by the request.
Declaration
Swift
public func fetchCount(_ db: Database) throws -> IntParameters
dbA database connection.
-
A new QueryInterfaceRequest with a new net of selected columns.
// SELECT id, email FROM players var request = Player.all() request = request.select(Column("id"), Column("email"))Any previous selection is replaced:
// SELECT email FROM players request .select(Column("id")) .select(Column("email"))Declaration
Swift
public func select(_ selection: SQLSelectable...) -> QueryInterfaceRequest<T> -
A new QueryInterfaceRequest with a new net of selected columns.
// SELECT id, email FROM players var request = Player.all() request = request.select([Column("id"), Column("email")])Any previous selection is replaced:
// SELECT email FROM players request .select([Column("id")]) .select([Column("email")])Declaration
Swift
public func select(_ selection: [SQLSelectable]) -> QueryInterfaceRequest<T> -
A new QueryInterfaceRequest with a new net of selected columns.
// SELECT id, email FROM players var request = Player.all() request = request.select(sql: "id, email")Any previous selection is replaced:
// SELECT email FROM players request .select(sql: "id") .select(sql: "email")Declaration
Swift
public func select(sql: String, arguments: StatementArguments? = nil) -> QueryInterfaceRequest<T> -
A new QueryInterfaceRequest which returns distinct rows.
// SELECT DISTINCT * FROM players var request = Player.all() request = request.distinct() // SELECT DISTINCT name FROM players var request = Player.select(Column("name")) request = request.distinct()Declaration
Swift
public func distinct() -> QueryInterfaceRequest<T> -
A new QueryInterfaceRequest with the provided predicate added to the eventual set of already applied predicates.
// SELECT * FROM players WHERE email = 'arthur@example.com' var request = Player.all() request = request.filter(Column("email") == "arthur@example.com")Declaration
Swift
public func filter(_ predicate: SQLExpressible) -> QueryInterfaceRequest<T> -
A new QueryInterfaceRequest with the provided predicate added to the eventual set of already applied predicates.
// SELECT * FROM players WHERE email = 'arthur@example.com' var request = Player.all() request = request.filter(sql: "email = ?", arguments: ["arthur@example.com"])Declaration
Swift
public func filter(sql: String, arguments: StatementArguments? = nil) -> QueryInterfaceRequest<T> -
A new QueryInterfaceRequest grouped according to expressions.
Declaration
Swift
public func group(_ expressions: SQLExpressible...) -> QueryInterfaceRequest<T> -
A new QueryInterfaceRequest grouped according to expressions.
Declaration
Swift
public func group(_ expressions: [SQLExpressible]) -> QueryInterfaceRequest<T> -
A new QueryInterfaceRequest with a new grouping.
Declaration
Swift
public func group(sql: String, arguments: StatementArguments? = nil) -> QueryInterfaceRequest<T> -
A new QueryInterfaceRequest with the provided predicate added to the eventual set of already applied predicates.
Declaration
Swift
public func having(_ predicate: SQLExpressible) -> QueryInterfaceRequest<T> -
A new QueryInterfaceRequest with the provided sql added to the eventual set of already applied predicates.
Declaration
Swift
public func having(sql: String, arguments: StatementArguments? = nil) -> QueryInterfaceRequest<T> -
A new QueryInterfaceRequest with the provided orderings.
// SELECT * FROM players ORDER BY name var request = Player.all() request = request.order(Column("name"))Any previous ordering is replaced:
// SELECT * FROM players ORDER BY name request .order(Column("email")) .reversed() .order(Column("name"))Declaration
Swift
public func order(_ orderings: SQLOrderingTerm...) -> QueryInterfaceRequest<T> -
A new QueryInterfaceRequest with the provided orderings.
// SELECT * FROM players ORDER BY name var request = Player.all() request = request.order([Column("name")])Any previous ordering is replaced:
// SELECT * FROM players ORDER BY name request .order([Column("email")]) .reversed() .order([Column("name")])Declaration
Swift
public func order(_ orderings: [SQLOrderingTerm]) -> QueryInterfaceRequest<T> -
A new QueryInterfaceRequest with the provided sql used for sorting.
// SELECT * FROM players ORDER BY name var request = Player.all() request = request.order(sql: "name")Any previous ordering is replaced:
// SELECT * FROM players ORDER BY name request .order(sql: "email") .order(sql: "name")Declaration
Swift
public func order(sql: String, arguments: StatementArguments? = nil) -> QueryInterfaceRequest<T> -
A new QueryInterfaceRequest sorted in reversed order.
// SELECT * FROM players ORDER BY name DESC var request = Player.all().order(Column("name")) request = request.reversed()Declaration
Swift
public func reversed() -> QueryInterfaceRequest<T> -
A QueryInterfaceRequest which fetches limit rows, starting at offset.
// SELECT * FROM players LIMIT 1 var request = Player.all() request = request.limit(1)Declaration
Swift
public func limit(_ limit: Int, offset: Int? = nil) -> QueryInterfaceRequest<T>
-
Deletes matching rows; returns the number of deleted rows.
Throws
A DatabaseError is thrown whenever an SQLite error occurs.Declaration
Swift
public func deleteAll(_ db: Database) throws -> IntParameters
dbA database connection.
Return Value
The number of deleted rows
View on GitHub
Install in Dash
QueryInterfaceRequest Structure Reference