Add examples of :columns usage
This commit is contained in:
parent
3c4638a269
commit
a4a8602af4
1 changed files with 20 additions and 0 deletions
|
|
@ -113,6 +113,26 @@ Given a table name (as a keyword) and either a hash map of column names and valu
|
||||||
"Stella" "stella@artois.beer"])
|
"Stella" "stella@artois.beer"])
|
||||||
```
|
```
|
||||||
|
|
||||||
|
The default behavior is to return all the columns in each row. You can specify a subset of columns to return using the `:columns` option. It takes a vector and each element of the vector can be:
|
||||||
|
|
||||||
|
* a simple keyword representing the column name (`:column-fn` will be applied, if provided),
|
||||||
|
* a pair of keywords representing the column name and an alias (`:column-fn` will be applied to both, if provided),
|
||||||
|
* a pair consisting of a string and a keyword, representing a SQL expression and an alias (`:column-fn` will be applied to the alias, if provided).
|
||||||
|
|
||||||
|
```clojure
|
||||||
|
(sql/find-by-keys ds :address {:name "Stella"} {:columns [[:email :address]]})
|
||||||
|
;; equivalent to
|
||||||
|
(jdbc/execute! ds ["SELECT email AS address FROM address WHERE name = ?"
|
||||||
|
"Stella"])
|
||||||
|
|
||||||
|
(sql/find-by-keys ds :address {:name "Stella"} {:columns [["count(*)" :n]]})
|
||||||
|
;; equivalent to
|
||||||
|
(jdbc/execute! ds ["SELECT count(*) AS n FROM address WHERE name = ?"
|
||||||
|
"Stella"])
|
||||||
|
```
|
||||||
|
|
||||||
|
> Note: the SQL string provided for a column is copied exactly as-is into the generated SQL -- you are responsible for ensuring it is legal SQL!
|
||||||
|
|
||||||
`find-by-keys` supports an `:order-by` option which can specify a vector of column names to sort the results by. Elements may be column names or pairs of a column name and the direction to sort: `:asc` or `:desc`:
|
`find-by-keys` supports an `:order-by` option which can specify a vector of column names to sort the results by. Elements may be column names or pairs of a column name and the direction to sort: `:asc` or `:desc`:
|
||||||
|
|
||||||
```clojure
|
```clojure
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue