如何实施 select * from fruit where cost> 22和成本< 44 w / DSL方式,例如下面的clojure/java.jdbc demo:
(require '[clojure.java.jdbc :as j]
'[clojure.java.jdbc.sql :as s])
(def mysql-db {:subprotocol "mysql"
:subname "//127.0.0.1:3306/clojure_test"
:user "clojure_test"
:password "clojure_test"})
(j/insert! mysql-db :fruit
{:name "Apple" :appearance "rosy" :cost 24}
{:name "Orange" :appearance "round" :cost 49})
;; ({:generated_key 1} {:generated_key 2})
(j/query mysql-db
(s/select * :fruit (s/where {:appearance "rosy"}))
:row-fn :cost)
;; (24)
提前致谢。
答案 0 :(得分:3)
where
功能仅支持=
比较。你能做的不是(s/where {..})
,而是可以放一个代表查询部分的向量:["cost > ? AND cost < ?" 22 44]
答案 1 :(得分:0)
由于已从clojure.java.jdbc
中删除了SQL DSL,因此推荐的方法是使用HoneySQL作为DSL(如clojure.java.jdbc
的自述文件中所述)。