簡體   English   中英

如何使用clojure.java.jdbc從Postgresql查詢JSON數據類型?

[英]How do I query a JSON datatype from postgresql with clojure.java.jdbc?

我了解如何:

但我不知道如何將其放在一起並使用clojure.java.jdbc查詢json。

例如,我有一個表用戶和一個字段user_info

CREATE TABLE user (id SERIAL,user_info JSON);

然后我發現這個博客暗示了一些協議,它成功插入了!

(insert! conn :yxt_user {:user_info {:hello [1 "test" true]}})

但是我不知道如何編寫代碼來從jdbc / query像這樣的sql查詢它

SELECT * FROM user WHERE data ? 'hello';

不是通過jdbc / execute直接寫sql之類的

(jdbc/execute! db-spec ["UPDATE table SET col1 = NOW() WHERE id = ?" 77])

我試圖寫這個查詢

(jdbc/query conn ["SELECT * FROM user WHERE user_info ? 'hello'"])

我懂了

org.postgresql.util.PSQLException: 未設定參數值 1 的內容。

然后我嘗試

(jdbc/query conn ["SELECT * FROM user WHERE user_info ? 'hello'" "?"])

我懂了

org.postgresql.util.PSQLException: ERROR: syntax error at or near "$1"

如何編寫查詢以對user_info具有JSON密鑰hello的JSON列進行過濾?

如果您有最新的postgresql驅動程序,則可以轉義? 與雙??

這應該工作:

 (jdbc/query conn ["SELECT * FROM user WHERE user_info ?? 'hello'"])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM