Здесь я заметил, что в сравнениях строковых массивов Postgres мы должны дать массив после оператора сравнения. Для примера:Почему массив Postgres выполняется после сравнения при сравнении?
SELECT campaign_products
FROM contacts
WHERE 'PMP' LIKE ANY(campaign_products) limit 10;
SELECT campaign_products
FROM contacts
WHERE 'as' = ANY(campaign_products);
Но когда я использую, как показано ниже, что дает ошибку синтаксиса:
SELECT campaign_products
from contacts
where ANY(campaign_products) = 'as';
ERROR: syntax error at or near "ANY"
LINE 1: SELECT campaign_products from contacts where ANY(campaign_pr...
Может кто-нибудь объяснить мне это и дайте мне знать, если есть способ дать массив слева оператор сравнения.
Я просто хочу знать, что происходит, и что такое сравнение строк и сравнение строк. Например: выберите идентификатор из контактов, где status = 'lead' limit 1; и выберите id из контактов, где «lead» = ANY (statuses) limit 1; дают мне результат, но выбирают id из контактов, где ANY (statuses) = 'lead' limit 1; ОШИБКА: синтаксическая ошибка в точке «ЛЮБОЕ» LINE 1: выберите идентификатор из контактов, где ANY (статусы) = 'lead' limit 1 ... – Pandu
Это просто синтаксически неверно. Я отредактировал ответ, возможно, станет понятнее. '' должно быть прямо перед '' в синтаксической диаграмме. 'ANY' не принадлежит' <подзапрос таблицы> '. –