使用参数查询IN子句

时间:2018-01-20 11:27:08

标签: postgresql metamug

这是我的查询,

<Request method="GET">
   <Query>
     select user_id from user
     where user_type in ($userTypes)
   </Query>
</Request>

如何在metamug资源文件中为此参数$ userType发送多个值。我正在使用GET请求。我的数据库是postgres。

$ userTypes是id列表。我可以在请求中将其作为逗号分隔的字符串“1501,1502,1503”传递。

感谢。

2 个答案:

答案 0 :(得分:2)

您可以使用:

select user_id from user
where user_type in (SELECT unnest(string_to_array($userTypes, ',')));

<强> DbFiddle Demo

答案 1 :(得分:1)

你也可以把它写成

<Request method="GET">
   <Query>
     select user_id from user 
     where user_type =any(string_to_array($userTypes,',')::int[]);
   </Query>
</Request>

我将其类型化为Integer array,您可以根据需要使用任何其他数据类型。