2

我正在使用 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)))

但它不起作用。

4

2 回答 2

0
(sql-only
  (select my-table (where {:a [> :b]})))
;; => "SELECT `my-table`.* FROM `my-table` WHERE (`my-table`.`a` > `my-table`.`b`)"
于 2015-01-11T21:59:40.257 回答
-1

我不确定这是否是一个有效的答案,但我建议查看 Yesql:

https://github.com/krisajenkins/yesql

在大多数情况下,您不需要 DSL 来重复 SQL 已经完成的工作。

我自己经常使用 Korma,发现自己花了太多时间将 SQL 转换为像这样的 Korma 语法。

于 2015-01-11T17:45:57.517 回答