ฉันมีโต๊ะสำหรับเก็บข้อมูลเกี่ยวกับกระต่ายของฉัน ดูเหมือนว่า:
create table rabbits (rabbit_id bigserial primary key, info json not null);
insert into rabbits (info) values
('{"name":"Henry", "food":["lettuce","carrots"]}'),
('{"name":"Herald","food":["carrots","zucchini"]}'),
('{"name":"Helen", "food":["lettuce","cheese"]}');
ฉันจะหากระต่ายที่ชอบแครอทได้อย่างไร? ฉันคิดสิ่งนี้:
select info->>'name' from rabbits where exists (
select 1 from json_array_elements(info->'food') as food
where food::text = '"carrots"'
);
ฉันไม่ชอบข้อความค้นหานั้น มันเป็นเรื่องยุ่ง
ในฐานะผู้ดูแลกระต่ายเต็มเวลาฉันไม่มีเวลาเปลี่ยนสคีมาฐานข้อมูล ฉันแค่อยากเลี้ยงกระต่ายของฉันอย่างถูกต้อง มีวิธีที่อ่านง่ายขึ้นในการทำแบบสอบถามนั้นหรือไม่?