如何将postgres json转换为整数

Ins*_*hua 33 postgresql json

我可以使用to_json(1)将int转换为json,但是如何将json转换为int?这可能太慢了:

to_json(1)::text::int
Run Code Online (Sandbox Code Playgroud)

另外,json是从二进制块(bson)还是简单的文本包装器中包装的?

Ali*_*Ali 28

对我有用(使用posgtgresql 5.6)是

SELECT (tablename.jsoncolumnname->>'jsonfiledname')::int FROM tablename;
Run Code Online (Sandbox Code Playgroud)

喜欢

SELECT (users.data->>'failed_login_attempts_count')::int FROM users;
Run Code Online (Sandbox Code Playgroud)

假设userstable有一个名为的json列data,它类似于:

{"failed_login_attempts_count":"2","comment":"VIP"}
Run Code Online (Sandbox Code Playgroud)

  • SELECT (*)::int - 这就是我要找的!谢谢你。 (2认同)

Den*_*rdy 12

to_json(1):: text :: int可能太慢了

但那时,这是唯一的方法.

问题的第二部分不清楚.


Cra*_*ger 6

PostgreSQL 9.3 JSON支持仅是经过验证的JSON文本。

在9.4及更高版本中,您可以使用jsonb。

“可能太慢”没有任何意义。是什么让您认为它太慢了?您是否进行了测试和基准测试?如果“太慢”,那么什么速度也不会太慢,即您期望什么?