Ruby on rails 如何在Postgresql数组中搜索“%stars%”?

Ruby on rails 如何在Postgresql数组中搜索“%stars%”?,ruby-on-rails,postgresql,Ruby On Rails,Postgresql,我试图在Postgresql查询中找到一条记录,其中有一列“alternate_names” t.text "alternate_names", default: [], array: true 我想找到以下记录: altenate_names = ['All Stars'] 我的标准是“明星” 换句话说,我怎样才能写出以下内容 select * from group where '%Stars%' = ANY(alternate_n

我试图在Postgresql查询中找到一条记录,其中有一列“alternate_names”

t.text     "alternate_names",          default: [],                 array: true
我想找到以下记录:

altenate_names = ['All Stars']
我的标准是“明星”

换句话说,我怎样才能写出以下内容

select * from group where '%Stars%' = ANY(alternate_names);
但这不会返回我上面的记录,因为它有数组['All Stars']……因此,我如何使用数组执行ILIKE“%Stars%”?

您可以使用unnest检查数组中所有元素的部分匹配。 例:


如果您需要类似的操作员:

select * from group where alternate_names::text like '%Stars%';

将数组的文本表示形式与模式进行比较是无效的,但在文本[]上的任何查询中,模式前的通配符都无效。

select*from group where alternate_names::text like“%Stars%”;如果你想像Operator一样。虽然不确定它是否有效,但在任何查询中,模式之前的通配符都不会有效probably@VaoTsun我用了你的答案,效果很好。请随意提交答案,我会把它划掉。谢谢。请在投票时发表评论
select * from group where alternate_names::text like '%Stars%';