【发布时间】: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