আমার খরগোশ সম্পর্কে তথ্য সঞ্চয় করার জন্য আমার কাছে একটি টেবিল রয়েছে। দেখে মনে হচ্ছে:
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"'
);
আমি এই ক্যোয়ারী পছন্দ করি না। এটি একটি জগাখিচুড়ি.
পুরো সময়ের খরগোশ-রক্ষক হিসাবে আমার ডেটাবেস স্কিমা পরিবর্তন করার আমার কাছে সময় নেই। আমি কেবল আমার খরগোশগুলিকে সঠিকভাবে খাওয়াতে চাই। এই ক্যোয়ারীটি করার কি আরও পঠনযোগ্য উপায় আছে?