2016-12-27 60 views
0

我正在嘗試使用新的箱子數據庫。 link 我有一個包含「基礎設施」和「網絡」對象的表:如何從SQL對象查詢項目(CRATE DB)

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

我需要從網絡陣列「基礎設施」和hosting_id日OS_NAME查詢。我怎麼做?我試圖谷歌找到正確的語法,但沒有成功。我想是這樣的:

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

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

切勿將多個值存儲在單個列中。更好地改變你的餐桌設計 –

+0

這是'MySQL' ......從來沒有見過這樣的語法。可能我錯過了一些 – Rahul

+0

對不起。這不是Mysql,但它使用sql語言。 https://crate.io/ – Vasile

回答

2

ANY()是你的朋友,但是要注意,它不與對象數組。所以你還需要考慮this information。下面的解決方案適用於最新的Crate版本1.0.1:

SELECT * FROM servers 
WHERE 
    os_name = 'some value' 
AND 
    'some value' = ANY(network['hosting_id']);