我有一个TEXT
列包含有效的JSON字符串。PostgreSQL 9.2 - 将TEXT json字符串转换为json/hstore类型
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"}');
我想将某些字段转换为查询格式。
A REGEXP_REPLACE
会为每个字段做(language
字段和gender
字段)。但因为它是有效的JSON,是有办法:
- 转换成JSON类型
- 转换成hstore型
- 或任何其他可行的方式
SQLFiddle:http://sqlfiddle.com/#!12/54823
请求的功能是从一个有趣的功能9.3。我读了一些文章,其中描述使用pl/js8为此目的http://www.postgresonline.com/journal/archives/263-PLV8JS-and-PLCoffee-Part-2-JSON-search-requests.html – 2013-04-18 05:41:13
谢谢。我还发现我可以通过将它转换为JSON来执行第一个操作:'settings :: json'。但它不能查询。以正则表达式结算。 – huy 2013-04-18 07:35:25
仅供参考对于PostgreSQL 9.2,有一个9.3 JSON函数增强的backport http://adpgtech.blogspot.co.nz/2013/04/backport-of-93-json-enhancements.html – 2013-04-27 10:22:36