@mackshkatz Право, я имел в виду «правая сторона - это подмножество левой стороны» (или, что эквивалентно, «левая сторона - это надмножество правой стороны»). Спасибо что подметил это.

TL;DRинтересно, каковы плюсы и минусы (или если они даже эквивалентны) между@> {as_champion, whatever} и используяIN ('as_champion', 'whatever') является. Подробности ниже:

Я работаю с Rails и использую тип столбца массива Postgres, но мне приходится использовать raw sql для моего запроса, так как методы поиска Rails не очень хорошо с ним работают. Я нашел способ, который работает, но интересно, каков предпочтительный метод:

roles колонка наMemberships таблица мой столбец массива. Это было добавлено через рельсы как так:

add_column :memberships, :roles, :text, array: true

Когда я изучаю таблицу, она показывает тип как:text[] (не уверен, действительно ли Postgres представляет столбец массива или это Rails shenanigans.

Чтобы сделать запрос, я делаю что-то вроде:

Membership.where("roles @> ?", '{as_champion, whatever}')

Ответы на вопрос(1)

Ваш ответ на вопрос