【问题标题】:Parameterizing a query with a varying amount of WHERE clause conditionals使用不同数量的 WHERE 子句条件参数化查询
【发布时间】:2022-06-15 05:08:52
【问题描述】:

假设我们有一个包含“颜色”和“尺寸”列的表格。我有一个包含颜色大小组合的列表(例如[(red, small), (blue, medium)]),其中长度未知。应根据此列表过滤表,以便结果仅包含组合适用的行。

基于示例的查询如下所示:

SELECT * FROM items WHERE ((color = 'red' AND size = 'small') OR (color = 'blue' and size = 'medium'));

参数化这个查询当然是行不通的,因为组合的数量是不同的。

有没有办法使用像node-postgres 中使用的参数化查询来实现这一点?我能想到的唯一解决方案是使用字符串插值,这似乎并不安全。

【问题讨论】:

  • 我的建议是有一个包含两列的临时表color, size;首先在此处插入组合,然后使用 JOIN 和所述表制作您的 SELECT

标签: postgresql node-postgres


猜你喜欢
  • 1970-01-01
  • 2012-12-29
  • 1970-01-01
  • 1970-01-01
  • 2020-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-11
相关资源
最近更新 更多