通过在Array列中搜索特定值来选择一行

时间:2019-04-24 03:39:00

标签: postgresql elixir

我们有一个表,其中的一列是一个数组。只要我的搜索值使用ILIKE匹配它们的值,我就需要选择一行或多行。我的问题是,我还需要搜索数组列的值。我尝试使用ANY,但是该值必须精确选择行。我需要类似于ILIKE的东西,但需要该数组列。

谢谢。

1 个答案:

答案 0 :(得分:2)

使用unnest函数:

SELECT x.value
FROM my_table t, unnest(t.my_array_column) as x(value)
WHERE x.value ILIKE 'foo'

一旦您的问题也被标记为,要将其转换为 Ecto ,请使用Ecto.Query.API.fragment/1作为选择条件,Ecto.Query.API.ilike/2作为匹配条件。