

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# FROM 子句
<a name="iot-sql-from"></a>

FROM 子句可讓[主題](topics.md#topicnames)或[主題篩選條件](topics.md#topicfilters)訂閱您的規則。以單引號 (') 括住主題或主題篩選條件。系統會為每則傳送到符合此處指定的主題篩選條件之 MQTT 主題的訊息觸發該規則。您可以使用主題篩選條件訂閱類似主題的群組。

**範例**：

發佈在主題 `'topic/subtopic'` 的傳入承載：`{temperature: 50}`

發佈在主題 `'topic/subtopic-2'` 的傳入承載：`{temperature: 50}`

SQL：`"SELECT temperature AS t FROM 'topic/subtopic'"`。

規則已訂閱至 `'topic/subtopic'`，因此傳入的承載會傳遞至該規則。傳送至規則動作的外寄承載為：`{t: 50}`。規則並未給 `'topic/subtopic-2'` 訂閱，因此發佈在 `'topic/subtopic-2'` 的訊息不會觸發該規則。

**\# 萬用字元範例：**

您可以使用 '\#'(多層級) 萬用字元，以比對一或多個特定路徑元素：

發佈在主題 `'topic/subtopic'` 的傳入承載：`{temperature: 50}`。

發佈在主題 `'topic/subtopic-2'` 的傳入承載：`{temperature: 60}`。

發佈在主題 `'topic/subtopic-3/details'` 的傳入承載：`{temperature: 70}`。

發佈在主題 `'topic-2/subtopic-x'` 的傳入承載：`{temperature: 80}`。

SQL：`"SELECT temperature AS t FROM 'topic/#'"`。

已將該規則訂閱至開頭為 `'topic'` 的任何主題，因此該規則會執行三次，將傳出的 `{t: 50}` (表示主題/子主題)、`{t: 60}` (表示主題/子主題 2) 和 `{t: 70}` (表示主題/子主題 3/詳細資訊) 的承載傳送給其動作。它沒有訂閱 `'topic-2/subtopic-x'`，因此不會觸發 `{temperature: 80}` 訊息的規則。

**\+ 萬用字元範例：**

您可以使用 '\+'(單層級) 萬用字元，以比對任何一個特定路徑元素：

發佈在主題 `'topic/subtopic'` 的傳入承載：`{temperature: 50}`。

發佈在主題 `'topic/subtopic-2'` 的傳入承載：`{temperature: 60}`。

發佈在主題 `'topic/subtopic-3/details'` 的傳入承載：`{temperature: 70}`。

發佈在主題 `'topic-2/subtopic-x'` 的傳入承載：`{temperature: 80}`。

SQL：`"SELECT temperature AS t FROM 'topic/+'"`。

所有主題訂閱的規則有兩個路徑元素，第一個為：`'topic'`。規則是針對傳送至 `'topic/subtopic'` 和 `'topic/subtopic-2'` 的訊息執行，但不是針對 `'topic/subtopic-3/details'` (它具有比主題過濾條件更多的層級) 或 `'topic-2/subtopic-x'` (它不是以 `topic` 開頭) 執行。