0
いいえ、これはペットのデートアプリではありません。私のアプリは違って複雑です。SQL、rails:レコードのJSONB列にキーと値のペアがあるかどうかを確認してください
私はレールアプリを持っています。私は2つのテーブルハウスとペットがあります。家にはペットがたくさんいます。マイペットのテーブルには、JSONB列には、そのようなペットの種類や性別のキーと値のペアが含まれているpet_description呼ばれています:
{
"dog"=>"male",
"cat"=>"female",
"parrot"=>"male"
}
をそして、このためのマイグレーションファイルは次のとおりです。私の家で
class AddPetDescriptionToPets < ActiveRecord::Migration
def change
add_column :pets, :pet_description, :jsonb, default: {}
add_index :pets, :pet_description, using: :gin
end
end
私はSQLクエリを実行するクエリを持っています。ペットを持つすべての家を見つけるためにこのクエリを実行すると機能します。
しかし、特定のペットの種類と性別を持つすべての家を照会する場合は、このクエリが機能しないようです。私はJSONBの新機能ですが、下のクエリで何が間違っていますか?、お手伝いください!!!!
self.where("EXISTS (SELECT null FROM pets WHERE pets.house_id = houses.id AND pets.pet_description @> '{'dog' : 'male'}'::jsonb)")
感謝! グレッグ
ブリリアント!ありがとうございます!両方の答えが完璧に働く、あなたは星です!!!! – GregF