Я пытаюсь получить строки, где столбец типа text[]
содержит значение, подобное некоторому пользовательскому вводу.PostgreSQL - text Array содержит значение, подобное
То, что я думал, что и делали до сих пор является использование 'ANY'
и 'LIKE
'оператора, как это:
select * from someTable where '%someInput%' LIKE ANY(someColum);
Но это не работает. Запрос возвращает то же значение, что этот запрос:
select * from someTable where 'someInput' = ANY(someColum);
У меня есть хороший результат, используя unnest()
функции в подзапросе, но мне нужно, чтобы запросить это в ИНЕКЕ, если это возможно.
ПОЧЕМУ оператор LIKE
не работает с оператором ANY
, и у меня нет ошибок? Я думал, что одна из причин, что должны быть ANY
оператора в правой части запроса, но ...
Есть ли решение этой проблемы без использования unnest()
и если это возможно, в WHERE
пункте?
Решение без использования 'unnest' было бы правильно нормализовать вашу модель данных. –
Я думал создать новую таблицу вместо столбца этого типа данных, если не было другого решения. Я сделаю это, так! Спасибо за Ваш ответ! –