PostgreSQL-从查询字符串中删除WHERE之前的结尾逗号

时间:2019-06-11 12:46:19

标签: sql node.js postgresql

我有一个API,该API接收带有一个或多个参数的PATCH请求,并构建一个如下所示的查询字符串

UPDATE ${table} SET ${param1}${param2}${param3} WHERE id=${id} 

问题是,如果我在参数中或最终查询中放入逗号,则只有一个参数的请求会破坏查询

UPDATE ${table} SET ${param1}, WHERE id=${id}

UPDATE ${table} SET ${param1},, WHERE id=${id}

如何在WHERE之前删除逗号?

1 个答案:

答案 0 :(得分:0)

您可以将所有参数结合在一起,但是请确保输入内容已被清理以进行sql注入。假设他们已经在类似列表中

params = [param1, param2, param3];
paramsStr = params.join(", ");

示例:

["abc='def'", "xyz=123"].join(',')
#outputs:
'abc=\'def\',xyz=123'

然后在查询模板中使用paramsStr。通过这个简单的技巧,您不必处理尾随/前导逗号

UPDATE ${table} SET ${paramsStr} WHERE id=${id}