【发布时间】:2015-06-13 23:10:22
【问题描述】:
我目前正在尝试“新”数据类型 json。 这是定义为 php Array(字段中存储的一行数据)的一部分
'processed'=>array(5):
["ct"]=>
int(1)
["wt"]=>
int(11)
["cpu"]=>
int(0)
["mu"]=>
int(1056)
["pmu"]=>
int(0)
我尝试了以下查询:
SELECT id, data->>'processed'>'ct' as sortField FROM system_debug ORDER BY sortField ASC
但我得到的只是一张这样的表格:
id sortfield
6 true
7 true
8 true
9 true
10 true
11 true
12 true
13 true
14 true
15 true
16 true
17 true
18 true
我正在尝试实现排序,而不需要将数据单独存储在表中。 我错在哪里了?
表方案:
CREATE TABLE system_debug (
data JSON,
id integer NOT NULL
);
CREATE SEQUENCE system_debug_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE system_debug_id_seq OWNED BY system_debug.id;
ALTER TABLE ONLY system_debug ALTER COLUMN id SET DEFAULT nextval(\'system_debug_id_seq\'::regclass);
感谢任何我能得到的帮助^^
【问题讨论】:
-
可能是错字:
SELECT id, data->>'processed'->'ct' -
嗯,没用。
-
错误:运算符不存在:文本-> 未知第 1 行:选择 id,数据->>'已处理'->'ct' FROM system_debug; ^ 提示:没有运算符匹配给定的名称和参数类型。您可能需要添加显式类型转换。
-
SELECT id, data->'processed'->'ct'两个错别字,抱歉 ;) -
克林你能把你的回复作为答案发布,所以我可以关闭这个问题吗?
标签: php sql json postgresql