我理解如何:
但是我不知道怎么把它放在一起并用clojure.java.jdbc查询json。
例如,我有一个表用户和一个字段user_info
CREATE TABLE user (id SERIAL,user_info JSON);
然后我发现this blog推出了一些协议,并且插入成功!
(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列?
答案 0 :(得分:2)
如果你有最新的postgresql驱动程序,你可以逃脱?用双??
这应该有效:
(jdbc/query conn ["SELECT * FROM user WHERE user_info ?? 'hello'"])