2017-01-01 48 views
0

閱讀數組json - memsql閱讀數組json - memsql

我有數組其中項目是JSON。

表:

CREATE TABLE `example` (
orderId BIGINT, 
`data` JSON NULL 
); 

實例記錄

orderId -> ZA/XYZ 
data -> [ 
{'item':1,'price':20}, 
{'item':2,'price':30}, 
{'item':3,'price':40} 
(...) 
] 

當我在尋找它至少有一個更大然後20產品訂單,我用這個SQL:

SELECT orderId FROM example WHERE data::`0`::price > 20 OR data::`1`::price > 20 OR data::`2`::price > 20 (...) OR OR OR.... 

但我不知道訂單中有多少產品。

有沒有解決這個問題的方法?

也許是這樣的:

SELECT orderId FROM example WHERE data::*::price > 20 ?? 

回答

0

不幸的是我們不直接支持目前這。

一種用於此解決辦法是創建一個基準表與含有0,1,2行,...:

create reference table r (i bigint primary key); 
insert into r values (0), (1), (2), ...; 

然後,你加入該並使用每個整數從數組搶關聯值並測試該密鑰:

select distinct orderId from example, r where json_extract_double(json_extract_json(data, r.i), 'price') > 20;