Json in Postgresql: The Ultimate Guide



Download 157,64 Kb.
Pdf ko'rish
bet7/13
Sana11.04.2022
Hajmi157,64 Kb.
#543559
1   2   3   4   5   6   7   8   9   10   ...   13
Bog'liq
postgresql json

id product_name 
drawers_element 
drawers_text 

Chair 
null 
null 

Desk 
{"side": "left", "height": 
"40cm"} 
{"side": "left", "height": "40cm"} 

Side Table 
null 
null 

Small Table 
null 
null 
id 
product_name 
attributes 
1 Chair 
{"color":"brown", "material":"wood", "height":"60cm"} 


JSON in PostgreSQL 
Often we need to filter on one of the keys or values. How can we do that? 
What if we try using the LIKE keyword with a partial match? 
SELECT 
id, 
product_name, 
attributes 
FROM product 
WHERE attributes LIKE '%"color":"brown"%'; 
ERROR: operator does not exist: jsonb ~~ unknown 
LINE 27: WHERE p.attributes LIKE '%"color":"brown"%'; 

HINT: No operator matches the given name and argument type(s). You 
might need to add explicit type casts. 
We get an error in PostgreSQL as we can't use the LIKE attribute on a JSONB column. 
There are several features in PostgreSQL that make it possible to filter on JSON data. 
Using Notation to Filter Data 
Let's say we want to find all products where the color is brown. The color is a part of the attributes 
JSON column in our table. 
We can use the same notation we used for selecting a column for filtering it. 
We can write the notation like this: 
attributes -> 'color' 
We then add this to our SELECT statement 
SELECT 
id, 
product_name, 
attributes 
FROM product 
WHERE attributes -> 'color' = 'brown'; 
14 


JSON in PostgreSQL 
We've added this notation to our WHERE clause, and added a condition where the color is equal 
to "brown". 
Here's what happens when we run the query. 
ERROR: invalid input syntax for type json 
LINE 27: WHERE attributes -> 'color' = 'brown'; 

DETAIL: Token "brown" is invalid. 
CONTEXT: JSON data, line 1: brown 
We get this error because the query is expecting a JSON object in the WHERE clause, and we 
provided the string of "brown". It's expecting a JSON object because we used ->. 
We can use ->> to be able to provide a string. 
SELECT 
id, 
product_name, 
attributes 
FROM product 
WHERE attributes ->> 'color' = 'brown';
The results of this query are shown below. 
We can see that the results only show records where the color attribute is brown. 
Splitting JSON Data into Rows 
So far we've seen examples of using different functions to read and filter JSON data. 
The result has been that all of the JSON data has been displayed in a single column. 
15 

Download 157,64 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10   ...   13




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish