使用 executeStatement 的 DynamoDB 参数化 PartiQL 查询
DynamoDB parameterized PartiQL query with executeStatement
我对 nodejs 中的 aws sdk 和 aws lamdba 中的 运行 进行了以下查询,但在使用参数数组时不起作用:
executeStatement({
Statement: `select * from "myTable"."myIndex" where "pk" = '?' and "sortKey5" >= 50 ORDER BY "sortKey5" DESC`,
Parameters: [{"S": pk}] })
使用参数直接内联的相同查询有效
executeStatement({
Statement: `select * from "myTable"."myIndex" where "pk" = 'xxx' and "sortKey5" >= 50 ORDER BY "sortKey5" DESC` })
可能是带'?'的语法这是错误的,但我找不到任何具有其他语法的示例。
有谁知道语句怎么写才能使用参数吗?
看来,至少在 SELECT 语句中,需要省略 ?
周围的单引号,例如foobar = ?
而不是 foobar = '?'
.
因此您的查询将是:
executeStatement({
Statement: `select * from "myTable"."myIndex" where "pk" = ? and "sortKey5" >= 50 ORDER BY "sortKey5" DESC`,
Parameters: [{"S": pk}]
})
我对 nodejs 中的 aws sdk 和 aws lamdba 中的 运行 进行了以下查询,但在使用参数数组时不起作用:
executeStatement({
Statement: `select * from "myTable"."myIndex" where "pk" = '?' and "sortKey5" >= 50 ORDER BY "sortKey5" DESC`,
Parameters: [{"S": pk}] })
使用参数直接内联的相同查询有效
executeStatement({
Statement: `select * from "myTable"."myIndex" where "pk" = 'xxx' and "sortKey5" >= 50 ORDER BY "sortKey5" DESC` })
可能是带'?'的语法这是错误的,但我找不到任何具有其他语法的示例。
有谁知道语句怎么写才能使用参数吗?
看来,至少在 SELECT 语句中,需要省略 ?
周围的单引号,例如foobar = ?
而不是 foobar = '?'
.
因此您的查询将是:
executeStatement({
Statement: `select * from "myTable"."myIndex" where "pk" = ? and "sortKey5" >= 50 ORDER BY "sortKey5" DESC`,
Parameters: [{"S": pk}]
})