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?