首页 > 解决方案 > 如何在postgresql rails中搜索具有多个值的数组列

问题描述

我有两个两个模型posttags我想在哪里发布一些标签。

post_id  integer  3
tags     array  {'v1', 'v2'}

在标签模型中搜索时Tag.where('tag && array[['v1', 'v2']]')

但是当在帖子中添加这个不起作用Post.where('tags.tags && array[['v1', 'v2']]')

每个帖子都有一个标签

标签: ruby-on-railsrubypostgresql

解决方案


最直接/最原始的方法是这样的:

Post.joins(:tags).where("ARRAY['v1', 'v2'] <@ tags.tags")

关于将用户输入的值注入发送到数据库的字符串中的强制性警告,用于WHERE子句。


推荐阅读