![](/img/trans.png)
[英]clojure: compute a new key/val pair in a map based on other key/val pairs
[英]match all key/val pairs
原始查詢:
-- :name select*-list
-- :command :query
-- :result :raw
-- :doc Select all lists.
-- parameters()
SELECT * FROM list;
我想傳遞任意鍵/值對並獲取匹配結果。 例如:
(select*-list db-spec {:name "Fruit" :type "Foo"})
應導致:
SELECT * FROM list
WHERE name = 'Fruit'
AND type = 'Foo';
我可以想到一些丑陋的方法來完成此操作,但是可能我忽略了一些不錯的方法來完成此操作。
JDBC提供了一些很棒的捷徑。 其中之一是按鍵查找 。 它完全滿足您的要求:取得鍵/值對的映射,並組成一組與AND
連接的WHERE
子句:
(jdbc/find-by-keys db-spec :users {:name "John" :age 42 :city "Chita"})
會變成
select from users
where
name = 'John'
and age = 42
and city = 'Chita';
這是一個示例java-jdbc.sql
(require '[java-jdbc.sql :as sql])
(jdbc/query db-spec
(sql/select * :fruit (sql/where {:appearance "ripe"})))
;; -> ({:grade 8.4, :unit "carton", :cost 12, :appearance "ripe", :name "Plum"})
請參見:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.