dav*_*rth 11 javascript knex.js
仅使用knexjs(没有书架)我想做类似以下查询的事情:
select * from table1 where column1 < column2
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时:
.table("table1").select().where("column1", "<", "column2")
Run Code Online (Sandbox Code Playgroud)
knexjs生成的SQL是:
select * from table1 where column1 < 'column2'
Run Code Online (Sandbox Code Playgroud)
这没有给出理想的结果b/c它没有比较列的值,而是比较字符串'column2'的值.
谁知道怎么做我想要的?谢谢!
dav*_*rth 16
好了,一些挖后,它看起来像它可以做到这种方式.不确定这是否是最佳做法,但此刻,它一直有效,直到我听到其他情况......
.table("table1").select().where("column1", "<", knex.raw("table1.column2"))
Run Code Online (Sandbox Code Playgroud)
再次,不理想,但它完成了工作.一定要确定
import knex from "knex";
Run Code Online (Sandbox Code Playgroud)
在你正在使用它的任何文件的顶部.
从knex 0.15.0(2018年7月)开始,我们现在有:
table("table1").select().where("column1", "<", knex.ref("column2"))
Run Code Online (Sandbox Code Playgroud)
正如Greg Hornby在对其他答案的评论中提到的那样,您还可以??在原始查询中使用以绑定到列或表名。
| 归档时间: |
|
| 查看次数: |
2176 次 |
| 最近记录: |