In a rails 4 app, in one model I have a column containing multiple ids as a string with comma separated values.

```
"123,4568,12"

```

I have a "search" engine that I use to retrieve the records with one or many values using the full text search of postgresql I can do something like this which is very useful:

```
records = MyModel.where("my_models.col_name @@ ?", ["12","234"])

```

This return all the records that have both 12 and 234 in the targeted column. The array comes from a form with a multiple select. 

Now I'm trying to make a query that will find all the records that have either 12 or 234 in there string. 

I was hopping to be able to do something like: 

```
records = MyModel.where("my_models.col_name IN (?)", ["12","234"])

```

But it's not working. 

Should I iterate through all the values in the array to build a query with multiple OR ? Is there something more appropriate to do this? 

**EDIT / TL;DR**

@BoraMa answer is a good way to achieve this. 

To find all the records containing one or more ids referenced in the request use:

```
records = MyModel.where("my_models.col_name @@ to_tsquery(?)", ["12","234"].join('|'))

```

You need the to\_tsquery(?) and the join with a single pipe `|`to do a `OR` like query.

To find all the records containing exactly all the ids in the query use:

```
records = MyModel.where("my_models.col_name @@ ?", ["12","234"])

```

And of course replace ["12","234"] with something like `params[:params_from_my_form]`

[Postgres documentation for full text search](http://www.postgresql.org/docs/9.1/static/textsearch.html)