在 node-postgres 中使用字符串文字进行参数化查询
Parameterized query with string literal in node-postgres
我正在尝试编写一个 node-postgres 查询,它采用一个整数作为参数在间隔中使用:
const query = {
text:
`SELECT
foo
FROM bar
WHERE
DATE(created_at) >= DATE(NOW()) - INTERVAL ' DAYS';`,
values: [daysAgo]
}
当我 运行 这个时,它给出了这个错误消息,表明它没有看到
因为它被单引号括起来了:
bind message supplies 1 parameters, but prepared statement "" requires 0
有支持的方法吗?如果不是,最好的解决方法是什么?
我发现 this reference 这表明您可以使用 '1 DAY' * X
的约定。
我是这样工作的:
(async () => {
const { rows } = await pgpool.query(`
SELECT id, name FROM users
WHERE DATE(created) <= DATE(NOW()) - INTERVAL '1 DAY' * ;`,
[req.params.daysAgo]);
我正在尝试编写一个 node-postgres 查询,它采用一个整数作为参数在间隔中使用:
const query = {
text:
`SELECT
foo
FROM bar
WHERE
DATE(created_at) >= DATE(NOW()) - INTERVAL ' DAYS';`,
values: [daysAgo]
}
当我 运行 这个时,它给出了这个错误消息,表明它没有看到 因为它被单引号括起来了:
bind message supplies 1 parameters, but prepared statement "" requires 0
有支持的方法吗?如果不是,最好的解决方法是什么?
我发现 this reference 这表明您可以使用 '1 DAY' * X
的约定。
我是这样工作的:
(async () => {
const { rows } = await pgpool.query(`
SELECT id, name FROM users
WHERE DATE(created) <= DATE(NOW()) - INTERVAL '1 DAY' * ;`,
[req.params.daysAgo]);