【问题标题】:PostgreSQL - removing trailing comma before WHERE from query stringPostgreSQL - 从查询字符串中删除 WHERE 之前的尾随逗号
【发布时间】:2019-06-11 21:18:58
【问题描述】:

我有一个 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 之前的逗号?

【问题讨论】:

  • 您的 API 使用哪种语言?
  • @OtoShavadze node.js

标签: sql node.js postgresql


【解决方案1】:

您可以将所有参数连接在一起,但请确保为 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}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-29
    • 2019-01-10
    • 2012-05-20
    • 1970-01-01
    • 2011-04-24
    • 2021-01-25
    • 2015-03-08
    • 1970-01-01
    相关资源
    最近更新 更多