Back

find-by-keys (clj)

(source)

function

(find-by-keys connectable table key-map) (find-by-keys connectable table key-map opts)
Syntactic sugar over `execute!` to make certain common queries easier. Given a connectable object, a table name, and either a hash map of columns and values to search on or a vector of a SQL where clause and parameters, returns a vector of hash maps of rows that match. If `:all` is passed instead of a hash map or vector -- the query will select all rows in the table, subject to any pagination options below. If `:columns` is passed, only that specified subset of columns will be returned in each row (otherwise all columns are selected). If the `:order-by` option is present, add an `ORDER BY` clause. `:order-by` should be a vector of column names or pairs of column name / direction, which can be `:asc` or `:desc`. If the `:top` option is present, the SQL Server `SELECT TOP ?` syntax is used and the value of the option is inserted as an additional parameter. If the `:limit` option is present, the MySQL `LIMIT ? OFFSET ?` syntax is used (using the `:offset` option if present, else `OFFSET ?` is omitted). PostgreSQL also supports this syntax. If the `:offset` option is present (without `:limit`), the standard `OFFSET ? ROWS FETCH NEXT ? ROWS ONLY` syntax is used (using the `:fetch` option if present, else `FETCH...` is omitted).

Examples