0
我們的數據庫有一個表「日誌」像這樣的嵌套值:檢索和PostgreSQL JSON列
id | purchases (json)
1 {"apple":{"price":5,"seller":"frank"}, "bred":{"price":3,"seller":"kathy"}}
2 {"milk":{"price":3,"seller":"anne"}, "banana":{"price":2,"seller":"frank"}}
3 {"bred":{"price":4,"seller":"kathy"}}
我們想檢索包含"seller":"kathy"
所有記錄。我們試圖簡單的查詢是這樣的:
SELECT id FROM log WHERE purchases ->> 'seller' LIKE 'kathy'
SELECT id FROM log WHERE purchases = '{"seller":"kathy"}'
研究,我們這裏和其他地方好幾個小時......這似乎有點更加複雜,因爲這些值是嵌套?我們發現例如一些java或pgplsql實現,但我們仍然希望有一種「純SQL」的方式。什麼是合適的解決方案?或者我們應該重新組織我們的內容是這樣的:
id | purchases (json)
1 [{"product":"apple","price":5,"seller":"frank"},{"product":"bred","price":3,"seller":"kathy"}]
2 [{"product":"milk","price":3,"seller":"anne"},{"product":"banana","price":2,"seller":"frank"}]
3 [{"product":"bred","price":4,"seller":"kathy"}]
但我們發現,這將是更爲複雜,因爲我們必須在查詢中爆炸的陣列。任何簡短提示?謝謝!
完善,有很大幫助,感謝@dmitry,我明白得多了。 – Rainer