小编eki*_*nov的帖子

如何为 json 中缺少的属性构建 postgres json 查询?

我有一个表 A,其中 b 列为 jsonb

        b
------------------
 {"c": 1}
 {"c": 1, "d": 2}
Run Code Online (Sandbox Code Playgroud)

如何为缺少 d 的行构建查询?

SELECT * FROM A WHERE b@>'{"c":1}';
Run Code Online (Sandbox Code Playgroud)

返回所有行,同时

SELECT * FROM A WHERE b@>'{"c":1,"d":null}';
Run Code Online (Sandbox Code Playgroud)

返回无(由于第一行中的 d 不为空);

sql postgresql json

4
推荐指数
1
解决办法
1712
查看次数

Rails选择所有孩子的孩子

我的S班有很多A班,有B个。

我可以为我的S(S.As)获得所有A,可以遍历此数组并为每个A获得B。

就像是

S.As.each do |aa| 
    aa.Bs
end 
Run Code Online (Sandbox Code Playgroud)

不使用“每个”怎么办?

activerecord children ruby-on-rails

3
推荐指数
1
解决办法
1941
查看次数

对于generate_series的Postgres查询中的占位符返回未知

我尝试使用这样的占位符进行查询

database.Query("select login,displayname from (select distinct $1+trunc(random()*$2)::integer as id from generate_series($3,$4) g ) r join users using(id) limit 10",min_id,max_id-min_id,min_id,max_id)
Run Code Online (Sandbox Code Playgroud)

它抛出了一个错误:

pq: function generate_series(unknown, unknown) is not unique
Run Code Online (Sandbox Code Playgroud)

然后我找到了一个将查询格式化为字符串的解决方案

query:=fmt.Sprintf("select login,displayname from (select distinct %v+trunc(random()*%v)::integer as id from generate_series(%v,%v) g ) r join users using(id) limit 10",min_id,max_id-min_id,min_id,max_id)
Run Code Online (Sandbox Code Playgroud)

它的工作原理.

我想以正确的方式使它工作,但我不明白为什么它没有.

更新:

var min_id int64
var max_id int64
err:=_database.QueryRow("select min(id),max(id) from users").Scan(&min_id, &max_id)
if err!=nil { 
    log.Panicf("Failed to get min and max %v",err.Error())
    return
}

var rows *sql.Rows

query:=fmt.Sprintf("select login,displayname from (select distinct …
Run Code Online (Sandbox Code Playgroud)

postgresql go generate-series

2
推荐指数
1
解决办法
802
查看次数

获得403时如何获得响应体.Java

我向我的网络应用程序发出请求,网络应用程序报告了一些错误.没什么复杂的 像这样:

{"password":["can't be blank"]}
Run Code Online (Sandbox Code Playgroud)

它返回代码403.

在我的Android应用程序中,我HttpURLConnection用来发出请求,我抓住了一个异常白色试图getInputStream.

在那个例外我可以getResponseMessage(),但我得到的只是'禁止'

如何获得实际的响应体?

HttpURLConnection urlConnection = (HttpURLConnection)new URL(url).openConnection();
urlConnection.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Firefox/38.0");
try {
    String result = IOUtils.toString(urlConnection.getInputStream());
    urlConnection.disconnect();
    App.SaveToken(result);
}catch(IOException exception){
    if (urlConnection.getResponseCode()==403)
    {
        return urlConnection.getResponseMessage();
    }
}
Run Code Online (Sandbox Code Playgroud)

java android exception httpurlconnection

1
推荐指数
1
解决办法
644
查看次数