2012-06-20 6 views
2

Я пытаюсь определить, присутствует ли какой-либо элемент из списка значений в столбце массива в PostgreSQL.Сравнение массивов в PostgreSQL

SELECT * FROM data WHERE array IN (array) 

я это работает с помощью & & оператора и вручную сконструированный литерал массива:

SELECT id, data FROM things WHERE '{"value", "other"}' && (array_column) 

Есть ли лучший способ достичь этого?

+0

Вы действительно используете 9.2 уже? (который еще не выпущен) –

+0

Я использую текущий выпуск 9.2 dev, да –

ответ

2

Это довольно хороший способ, что вы подразумеваете под улучшением?

Существует одна вещь, которую можно было бы сделать какой-то другой путь, вы можете создать массив, используя ARRAY[...] так:

select ARRAY['a', 'b'] && '{"a", "c"}'; 
+0

Есть ли разница между двумя версиями? –

+0

В моем случае, я получаю ошибку ввода при сравнении с использованием синтаксиса ARRAY –