我有一个模型,用 SORT/PAGE/PER PAGE 调用产品
它适用于数值作为参数而不是字符串。
这工作正常...
params.limit = 12
client.query('SELECT * FROM products LIMIT $1', [params.limit], function(err, result)
然而这并不...
params.sort = 'product_id'
params.direction = 'DESC'
client.query('SELECT * FROM products ORDER BY $1 $2', [params.sort, params.direction], function(err, result)`
我认为这是因为它将单词
DESC
包装为 'DESC'
但我不知道如何在不将其直接注入(inject)字符串的情况下实现这一点。同样,
LIMIT
传递一个整数总是有效,但我认为传递 ALL
不是出于同样的原因。任何帮助都会非常有用!
最佳答案
我认为您可能需要进行明确的比较:
order by (case when $2 = 'ASC' then $1 end) ASC,
(case when $2 = 'DESC' then $1 end) DESC
关于node.js - 使用 LIMIT/ORDER BY 和 pg Postgres NodeJS 作为参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32425052/