Я пытаюсь получить строки, в которых столбец типа text[]
содержит значение, похожее на некоторый пользовательский ввод.
Что я думал и делал до сих пор, так это использовать оператор 'ANY'
и 'LIKE
' следующим образом:
select * from someTable where '%someInput%' LIKE ANY(someColum);
Но это не работает. Запрос возвращает те же значения, что и этот запрос:
select * from someTable where 'someInput' = ANY(someColum);
Я получил хороший результат, используя функцию unnest()
в подзапросе, но мне нужно запросить это в предложении WHERE
, если это возможно.
Почему оператор LIKE
не работает с оператором ANY
, и я не получаю никаких ошибок? Я думал, что одной из причин должно быть то, что оператор ANY
находится в правой части запроса, но...
Есть ли какое-либо решение для этого без использования unnest()
и возможно ли это в пункте WHERE
?
unnest
состояло бы в том, чтобы правильно нормализовать вашу модель данных. - person a_horse_with_no_name   schedule 07.01.2016