0

你好开发社区:)

堆栈:nodejs,Postgresql,npm:pg

如何在“where”子句中为有效或未定义的变量添加查询“and”语句?

例子

`select col1, col2 from table where col1='${test1}' ` <-- add here 'and col2='${test2}'

如何在未定义测试 2 时动态添加“and col2=${test2}”,并在未定义时保持原样。如何对像'and col3=test3 and col4=test4..and colN=testN'这样的多个条目做同样的事情?

目前,如果我在连接中添加“和”作为字符串,Postgresql 会返回错误。连接它的正确方法是什么?

谢谢你们 ;)

4

1 回答 1

-1

因为查询包含 order by、limit、offset 与参数化查询的直接连接不起作用,所以我找到了另一种在查询之外连接的解决方案。是的,它有一些速度问题,虽然它必须扫描更多,但它仍然有效。

let var1 = 123
let var2 = undefined
let query = ('select col1,col2,col3 from foo order by col1 limit 100 offset 25')

if (var1 && var2){
   query='select * from ('+query+')t where t.col1=var1 and t.col2=var2'
} else {
   query='select * from ('+query+')t'
}

}
于 2019-12-23T18:42:43.393 回答