Tavşanlar hakkında bilgi depolamak için bir masam var. Şöyle görünüyor:
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"]}');
Havuç seven tavşanları nasıl bulmalıyım? Ben şunu buldum:
select info->>'name' from rabbits where exists (
select 1 from json_array_elements(info->'food') as food
where food::text = '"carrots"'
);
Bu sorgu hoşuma gitmedi. Bu bir karmaşa.
Tam zamanlı bir tavşan bakıcısı olarak, veritabanı şemamı değiştirmek için zamanım yok. Sadece tavşanlarımı uygun şekilde beslemek istiyorum. Bu sorguyu yapmanın daha okunaklı bir yolu var mı?