2017-01-01 12 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} 
(...) 
] 

私はこのSQLを使用し、20より大きな少なくとも1つの製品を持って注文を探しています:

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; 
関連する問題