@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}')