0

新しいクレート データベースを使用しようとしています。リンク 「インフラストラクチャ」および「ネットワーク」オブジェクトを含むテーブルがあります。

CREATE TABLE servers (infrastructure object(strict) as (
                #etc...
                os_name string, 
                #etc...
                network array(object as 
                (etc.., hosting_id string, etc... ))

「インフラストラクチャ」から os_name を、ネットワーク アレイから Hosting_id をクエリする必要があります。どうすればいいですか?グーグルで正しい構文を見つけようとしましたが、成功しませんでした。私はこのようなものが欲しい:

SELECT * FROM servers WHERE infrastructure[os_name] = "some value"

SELECT * FROM servers WHERE infrastructure["network"]["hosting_id"] = "some value"
4

1 に答える 1

2

ANY()はあなたの味方ですが、オブジェクトの配列には当てはまらないことに注意してください。したがって、この情報も考慮する必要があります。以下の解決策は、最新の Crate バージョン 1.0.1 で機能します。

SELECT * FROM servers 
WHERE 
  os_name = 'some value' 
AND 
  'some value' = ANY(network['hosting_id']);
于 2016-12-27T19:49:28.230 に答える