У меня сейчас есть запрос в PostgreSQL, например:
SELECT
name
FROM
ingredients
WHERE
name = ANY({"string value",tomato,other})
Моя таблица ингредиентов - это просто список имен:
name
----------
jalapeno
tomatoes
avocados
lime
Моя проблема в том, что множественные значения в массиве будутне совпадают отдельные значения в запросе.Чтобы решить эту проблему, я создал столбец tsvector
в таблице:
name | tokens
---------------+--------------
jalapeno | 'jalapeno':1
tomatoes | 'tomato':1
avocados | 'avocado':1
lime | 'lime':1
Я могу правильно запрашивать отдельные значения из таблицы, например:
SELECT
name,
ts_rank_cd(tokens, plainto_tsquery('tomato'), 16) AS rank
FROM
ingredients
WHERE
tokens @@ plainto_tsquery('tomato')
ORDER BY
rank DESC;
Однако,Мне нужно запросить значения из всего массива.Массив создается из другой функции, поэтому я могу контролировать тип каждого элемента массива.
Как использовать операнд @@
с ANY(anyarray)
?