【发布时间】:2013-04-18 04:14:48
【问题描述】:
我有一个包含有效 JSON 字符串的 TEXT 列。
CREATE TABLE users(settings TEXT);
INSERT INTO users VALUES ('{"language":"en","gender":"male"}');
INSERT INTO users VALUES ('{"language":"fr","gender":"female"}');
INSERT INTO users VALUES ('{"language":"es","gender":"female"}');
INSERT INTO users VALUES ('{"language":"en","gender":"male"}');
我想将一些字段转换为可查询的格式。
每个字段的REGEXP_REPLACE 都可以(language 字段和gender 字段)。但既然它是有效的 JSON,有没有办法:
- 转成JSON类型
- 转换成hstore类型
- 或任何其他可行的方式
SQLFiddle:http://sqlfiddle.com/#!12/54823
【问题讨论】:
-
请求的功能是 9.3 中有趣的功能之一。我阅读了一些文章,其中使用 pl/js8 进行了描述postgresonline.com/journal/archives/…
-
谢谢。我还发现我可以通过将其转换为 JSON 来完成第一个:
settings::json。但它不是可查询的。用正则表达式解决。 -
仅供参考,PostgreSQL 9.2 adpgtech.blogspot.co.nz/2013/04/… 有一个 9.3 JSON 函数增强的反向移植@