如何通过比较 SqlKorma (clojure) 中的两个字段来创建 where 子句
How to make where clause with comparing two fields in SqlKorma (clojure)
我正在使用 Postgresql 和 sqlkorma 0.4。
CREATE TABLE mytable (id serial PRIMARY KEY,
a integer NOT NULL, b integer NOT NULL);
制作方法:
SELECT * FROM mytable WHERE a > b
我试过了
(defentity mytable
(pk :id)
(table :mytable))
和
(select table mytable
(fields :a :b)
(where (> a b)))
但它不起作用。
我不确定这是否是一个有效的答案,但我建议查看 Yesql:
https://github.com/krisajenkins/yesql
在大多数情况下,您不需要 DSL 来重复 SQL 已经完成的工作。
我自己过去经常使用 Korma,发现自己花了太多时间将 SQL 转换为这样的 Korma 语法。
(sql-only
(select my-table (where {:a [> :b]})))
;; => "SELECT `my-table`.* FROM `my-table` WHERE (`my-table`.`a` > `my-table`.`b`)"
我正在使用 Postgresql 和 sqlkorma 0.4。
CREATE TABLE mytable (id serial PRIMARY KEY,
a integer NOT NULL, b integer NOT NULL);
制作方法:
SELECT * FROM mytable WHERE a > b
我试过了
(defentity mytable
(pk :id)
(table :mytable))
和
(select table mytable
(fields :a :b)
(where (> a b)))
但它不起作用。
我不确定这是否是一个有效的答案,但我建议查看 Yesql:
https://github.com/krisajenkins/yesql
在大多数情况下,您不需要 DSL 来重复 SQL 已经完成的工作。
我自己过去经常使用 Korma,发现自己花了太多时间将 SQL 转换为这样的 Korma 语法。
(sql-only
(select my-table (where {:a [> :b]})))
;; => "SELECT `my-table`.* FROM `my-table` WHERE (`my-table`.`a` > `my-table`.`b`)"