Сравнение массивов SELECT в Postgres

У меня есть следующая таблица Postgres:

          Table "my_table"
    Column     |        Type         | 
---------------+---------------------+
 my_char_array | character varying[] |

Как запросить строку, где my_char_array = {'a','b','c'}? Я пробовал это:

select * from my_table where my_char_array = ARRAY['a','b','c'];

Но я получаю эту ошибку:

ОШИБКА: оператор не существует: переменный символ [] = текст []

Как переписать запрос, чтобы типы совпадали?


person Barry Fruitman    schedule 31.10.2017    source источник


Ответы (1)


Вы можете привести my_char_array к TEXT[]:

select * from my_table where my_char_array::TEXT[] = ARRAY['a','b','c'];
person Maurice Meyer    schedule 31.10.2017