我知道如何:
Query JSON in Postgres
How to query JSON data from postgresql in sqlalchemy
how to use clojure.java.jdbc
但我不知道如何将它组合在一起并使用clojure.java.jdbc查询json。
例如,我有一个表用户和一个字段用户

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"

如何编写查询以筛选用户信息具有JSON键的JSON列?

最佳答案

如果你有最新的postgresql驱动程序,你可以从?带一个双人间??
这应该有效:

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

关于java - 如何使用clojure.java.jdbc从Postgresql查询JSON数据类型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30105452/

10-10 13:50
查看更多