2016-05-25 14 views
5

Sử dụng knexjs chỉ (không kệ sách) Tôi muốn làm một cái gì đó giống như truy vấn sau đây:Với knexj, làm cách nào để so sánh hai cột trong hàm .where()?

select * from table1 where column1 < column2 

Tuy nhiên, khi tôi làm điều này:

.table("table1").select().where("column1", "<", "column2") 

Các SQL knexjs tạo ra là:

select * from table1 where column1 < 'column2' 

Không cung cấp kết quả mong muốn b/c không so sánh giá trị từ cột, nó so sánh giá trị của chuỗi, 'column2'.

Bất kỳ ai biết cách làm những gì tôi muốn? Cảm ơn!

Trả lời

7

Ok, vì vậy sau khi đào một số, có vẻ như nó có thể được thực hiện cách này. Không chắc chắn nếu đây là phương pháp hay nhất, nhưng hiện tại, nó hoạt động cho đến khi tôi nghe thấy khác ...

.table("table1").select().where("column1", "<", knex.raw("table1.column2")) 

Một lần nữa, không lý tưởng, nhưng nó hoàn thành công việc. Chỉ cần chắc chắn để

import knex from "knex"; 

ở phía trên cùng của bất cứ tập tin bạn đang sử dụng này trong.

+2

.whereRaw ("?? = ??", [ "column1", "column2"]) hoạt động quá –

Các vấn đề liên quan