我将字符串作为param (通过massivejs)传递到我的查询中。字符串被格式化为:param = 'red, blue, green'。param本身不具有固定的长度(“,”是分隔符),因为它是通过用户发送的内容填充的(但最多只有10个元素)。
如何将字符串分解为查询中的单个字符串?
我想做的事:
SELECT * FROM table
WHERE name IN (param);我知道这是可行的,但非常粗糙:
SELECT * FROM table
WHERE name IN (split_part(param, ',', 1), split_part(param, ',', 2) .......)) -- keep going. 本质上我想要(“红色”,“蓝色”,“绿色”)在括号内。有什么更好的方法来完成这件事?
发布于 2016-08-21 06:18:52
可以使用string_to_array函数将字符串拆分为数组,然后使用any函数检查元素是否包含在其中:
SELECT *
FROM mytable
WHERE name = ANY(STRING_TO_ARRAY(param, ','));https://stackoverflow.com/questions/39061358
复制相似问题