Postgresql Select rows where column = array

postgresql

Solution

SELECT  *
FROM    table
WHERE   some_id = ANY(ARRAY[1, 2])

or `ANSI`-compatible:

SELECT  *
FROM    table
WHERE   some_id IN (1, 2)

The `ANY` syntax is preferred because the array as a whole can be passed in a bound variable:

SELECT  *
FROM    table
WHERE   some_id = ANY(?::INT[])

You would need to pass a string representation of the array: `{1,2}`

Problem

This is a summary of what I am trying to do: ``` $array[0] = 1; $array[1] = 2; $sql = "SELECT * FROM table WHERE some_id = $array" ``` Obviously, there are some syntax issues, but this is what I want to do, and I haven't found anything yet that shows how to do it. Currently, my plan is to do something along these lines: ``` foreach($idList as $is) $where .= 'some_id=' . $id . ' OR'; endforeach $sql = "SELECT * FROM table WHERE " . $where; ``` So is there support in PostgreSQL to use an array to search, or do I have to do something similar to my solution?

Original source

Related problems