2012-01-03 67 views
2

如果我的查詢返回結果,我嘗試提取一些額外的信息。如何使用MQL編寫條件查詢?

例如,在此查詢,notable_for返回如「/音樂/ musical_group」我要合併的另一個查詢提取有關「/音樂/ musical_group」的一些信息,如它的「名字」

[{ 
"id": "/en/pearl_jam", 
"mid":None, 
"/common/topic/notable_for": [], 
"name":[] 
}] 

但如果它不返回任何東西,我不希望我的查詢失敗。例如,它下面的查詢返回領域的空列表「notable_for」

[{ 
"id": "/music/musical_group", 
"mid":None, 
"/common/topic/notable_for": [], 
"name":[] 
}] 

我應該如何信封我這樣的目的的查詢?

回答

2

你選擇了一個pseudoproperty(* /普通/主題/ notable_for *),而不是一個真正的財產爲您的例子,它的表現略有不同。對於一個不動產,如果你想得到所有的子屬性,你可以使用@ masouras的簡寫符號([{}]),但是如果你想挑選一個或兩個,訣竅就是使用「可選」關鍵詞。

例如,下面的查詢:如果一個樂隊沒有成員列出

[{ 
    "id": "/m/01mntvx", 
    "type":"/music/musical_group", 
    "/music/musical_group/member": [{ 
    "member": { 
     "name": null 
    }, 
    "optional": true 
    }], 
    "name":null 
}] 

甚至會工作。

+0

謝謝湯姆!對於任何人想知道的,這就是我真正想要的: [{ 「id」:「/ en/pearl_jam」, 「mid」:null, 「/ common/topic/notable_for」:[{「optional」 true}] }] – cirik 2012-01-09 14:00:50

0

這是你問:

[{ 「ID」: 「/ EN/pearl_jam」, 「中」:空, 「/普通/主題/ notable_for」:[{}] , }]

http://tinyurl.com/7tchree

+0

如果我們將id設置爲「/ music/musical_group」,則失敗。我想要一個不會失敗的查詢。 – cirik 2012-01-09 13:57:34