我目前正在尝试“新”数据类型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);
我接受了任何我能得到的帮助^^
答案 0 :(得分:1)
表达式
data->>'processed'>'ct'
的类型为boolean,因为>
是greater than
运算符。你可能想得到
SELECT id, data->'processed'->'ct' ...