postgres条件与喜欢

时间:2013-12-31 18:41:05

标签: postgresql

SELECT first_name FROM "profiles" where first_name in ('one','Ankita')

我想以这种方式运行上面的查询。

SELECT first_name FROM "profiles" where first_name in ('on%','Ank%')

有可能吗?如果是,那么它应该返回first_name以'on'和'An'开头。

1 个答案:

答案 0 :(得分:2)

您可以使用ANY with an array

  

<强> 9.23.3。 ANY / SOME(数组)

expression operator ANY (array expression)
expression operator SOME (array expression)
     

右侧是带括号的表达式,它必须产生一个数组值。使用给定的运算符计算左侧表达式并与数组的每个元素进行比较,该运算符必须产生布尔结果。如果获得任何真实结果,ANY的结果为“真”。如果没有找到真实结果,则结果为“false”(包括数组中零元素的情况)。

所以你可以这样说:

select first_name
from profiles
where first_name like any (array['on%', 'Ank%'])

您也可以使用a regex代替LIKE:

first_name ~  '^(on|Ank)'  -- Case sensitive
first_name ~* '^(on|Ank)' -- Case insensitive