3
我传递一个字符串作为参数(通过massivejs)到我的查询中。该字符串格式为:param = 'red, blue, green'
。该参数本身并没有固定的长度(','是分隔符),因为它通过用户发送的内容填充(但最多可填充10个元素)。如何多分割字符串(WHERE IN查询)
我如何将字符串分解成查询内的单个字符串?
例如我试图做的事:
SELECT * FROM table
WHERE name IN (param);
我知道这工作,但很很简陋:
SELECT * FROM table
WHERE name IN (split_part(param, ',', 1), split_part(param, ',', 2) .......)) -- keep going.
基本上我想有(“红”,“蓝” ,'绿色'...)在IN括号内。有没有更好的方法来完成这个?
完美的作品谢谢!快速跟进:我将如何调整这个来处理整数?那就是如果表格有整数。有什么像to_number在这里适用? – Suman
@SumanBhattarai在这种情况下,我会将该列转换为字符串,以便将苹果与苹果进行比较。 AFAIK,Postgres没有一个方便的方法来将一个函数应用到数组中的所有元素。 – Mureinik