我可以使用to_json(1)
将int转换为json,但是如何将json转换为int?这可能太慢了:
to_json(1)::text::int
另外,json是从二进制块(bson)还是简单的文本包装器中包装的?
答案 0 :(得分:19)
对我有用(使用posgtgresql 5.6)是
SELECT (tablename.jsoncolumnname->>'jsonfiledname')::int FROM tablename;
像
SELECT (users.data->>'failed_login_attempts_count')::int FROM users;
假设users
表有一个名为data
的json列,它类似于:
{"failed_login_attempts_count":"2","comment":"VIP"}
答案 1 :(得分:9)
to_json(1):: text :: int可能太慢了
但是,这是唯一的方法。
你问题的第二部分不清楚。
答案 2 :(得分:6)
PostgreSQL 9.3 JSON支持只是经过验证的json文本。
在9.4及更新版本中,您可以使用jsonb。
“可能太慢”并没有多大意义。是什么让你觉得它太慢了?你测试和基准吗?如果它“太慢”,那么不的速度会太慢,即你期望什么?