我有一个模型,用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'
,但我不知道如何在不将其直接注入字符串的情况下实现此目的。
同样LIMIT
传递一个整数总是有效但传递ALL
并不是出于同样的原因而假设。
任何帮助都非常有用!
答案 0 :(得分:0)
我认为您可能需要进行明确的比较:
order by (case when $2 = 'ASC' then $1 end) ASC,
(case when $2 = 'DESC' then $1 end) DESC