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'开头。
答案 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