

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 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'` で公開されるメッセージにトリガーされません。

**\# ワイルドカードの例:**

「\#」(複数レベル) ワイルドカード文字を使用して、1 つ以上の特定のパス要素に一致させることができます。

トピックに公開された受信ペイロード `'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'` で始まるすべてのトピックにサブスクライブされるため、3 回実行され、`{t: 50}` (topic/subtopic)、`{t: 60}` (topic/subtopic-2)、および `{t: 70}` (topic/subtopic-3/details) の送信ペイロードがアクションに送信されます。`'topic-2/subtopic-x'` に受信登録されていないので、`{temperature: 80}` のメッセージにルールはトリガーされません。

**\+ ワイルドカードの例:**

「\+」(単数レベル) ワイルドカード文字を使用して、1 つの特定のパス要素に一致させることができます。

トピックに公開された受信ペイロード `'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/+'"`。

ルールは、2 つのパス要素のあるすべてのトピックに受信登録されていて、最初の要素は `'topic'` です。ルールは `'topic/subtopic'` および `'topic/subtopic-2'`に送信されたメッセージに対して実行されますが、`'topic/subtopic-3/details'` (トピックフィルターよりも多くのレベルがある) または `'topic-2/subtopic-x'` (`topic` で始まらない) に対しては実行されません。