すべてのプロダクト
Search
ドキュメントセンター

IoT Platform:QueryDeviceBySQL

最終更新日:Apr 17, 2025

SQL に似た文を実行してデバイスをクエリします。この操作は、SQL に似た文で指定した条件を満たすデバイスを返します。

説明

  • Enterprise Edition インスタンス上のデバイスは、中国 (上海) リージョンと 日本 (東京) リージョンでのみクエリできます。
  • QueryDeviceBySQL 操作は、操作を呼び出すたびに最大 10,000 台のデバイスを返すことができます。詳細については、このトピックの「LIMIT 句の構文」セクションをご参照ください。

QPS 制限

この API 操作は、アカウントごとに 1 秒あたり最大 10 回呼び出すことができます。

説明 Alibaba Cloud アカウントの RAM ユーザーは、アカウントのクォータを共有します。

デバッグ

OpenAPI Explorer は署名値を自動的に計算します。便宜上、OpenAPI Explorer でこの操作を呼び出すことをお勧めします。 OpenAPI Explorer は、さまざまな SDK の操作のサンプルコードを動的に生成します。

リクエストパラメーター

パラメータータイプ必須説明
ActionStringはいQueryDeviceBySQL

実行する操作。値を QueryDeviceBySQL に設定します。

SQLStringはいSELECT * FROM device where product_key = "a1*********" limit 100, 20

デバイスをクエリするために実行する SQL に似た文。具体的な要件と例については、次のセクションをご参照ください。

IotInstanceIdStringいいえiot-cn-0pp1n8t****

インスタンスの ID。IoT Platform コンソールの [インスタンスの概要] ページでインスタンスの [ID] を表示できます。

重要
  • インスタンスに ID がある場合は、このパラメーターに ID を指定する必要があります。指定しないと、呼び出しは失敗します。
  • インスタンスに対して [概要] ページまたは [ID] が生成されていない場合は、このパラメーターを設定する必要はありません。

詳細については、「概要」をご参照ください。

QueryDeviceBySQL 操作を呼び出してデバイスをクエリする場合、SQL に似た文を指定する必要があります。 SQL に似た文には、SELECT 句と WHERE 句が含まれている必要があります。文には、ORDER BY 句と LIMIT 句を含めることもできます。各文の長さは 400 文字を超えることはできません。

例:

SELECT * FROM device WHERE product_key = "a1*********" order by active_time limit 0,10

SQL 句

説明

SELECT 句

SELECT [フィールド]/[count(*)] FROM device

フィールドパラメーターは、取得するフィールドを指定します。次の表でフィールドについて説明します。すべてのフィールドを取得する場合は、アスタリスク (*) を指定します。

指定した条件に一致する行数を取得する場合は、count(*) を指定します。

WHERE 句

WHERE [条件 1] AND [条件 2]

最大 5 つの条件を指定できます。ネストはサポートされていません。次の表で、フィールドと演算子について説明します。

AND または OR 論理演算子を使用して条件を接続できます。最大 5 つの論理演算子を使用できます。

ORDER BY 句 (オプション)

ORDER BY 句は、フィールドをソートするために使用されます。ソートできるフィールドは、gmt_create、gmt_modified、および active_time です。

この句はオプションです。この句を指定しない場合、結果はランダムにソートされます。

LIMIT 句 (オプション)

LIMIT 句は、各ページで返す最大行数と返す合計行数を指定します。詳細については、このトピックの「LIMIT 句の構文」セクションをご参照ください。

LIMIT 句を指定しない場合、デフォルトで limit 20 が指定されます。

LIMIT 句の構文

構文

説明

limit k

k の値は 50 以下である必要があり、各ページで返す行数が 50 を超えることができないことを指定します。例:

SELECT * FROM device WHERE product_key = "a1*****" limit 10

limit n,k

n と k の値の合計は 10,000 以下で、k の値は 50 以下である必要があります。これは、返す合計行数が 10,000 を超えることができず、各ページで返す最大行数が 50 を超えることができないことを指定します。例:

SELECT * FROM device WHERE product_key = "a1*****" limit 40,10
フィールド

フィールド

タイプ

説明

product_key

text

デバイスが属するプロダクトの ProductKey。

iot_id

text

デバイスの ID。デフォルトでは、iot_id が返されます。

name

text

デバイスの名前。

active_time

date

デバイスがアクティブ化された時刻。時刻は yyyy-MM-dd HH:mm:ss.SSS 形式で、ミリ秒単位まで正確です。

nickname

text

デバイスのエイリアス。

gmt_create

date

デバイスが作成された時刻。時刻は yyyy-MM-dd HH:mm:ss.SSS 形式で、ミリ秒単位まで正確です。

gmt_modified

date

デバイス情報が最後に更新された時刻。時刻は yyyy-MM-dd HH:mm:ss.SSS 形式で、ミリ秒単位まで正確です。

status

text

デバイスのステータス。有効な値:

ONLINE:デバイスはオンラインです。

OFFLINE:デバイスはオフラインです。

UNACTIVE:デバイスはアクティブ化されていません。

DISABLE:デバイスは無効になっています。

group.group_id

text

デバイスグループの ID。

tag.tag_name

text

デバイスのタグキー。

tag.tag_value

text

デバイスのタグ値。

ota_module.name

text

無線 (OTA) モジュールの名前。

このフィールドは、ota_module.version フィールドと組み合わせて使用​​して、デバイスの現在の OTA バージョン番号に対応する OTA モジュールを指定することをお勧めします。

ota_module.version フィールドを設定しない場合、OTA モジュール名でデバイスをクエリすることはできません。

ota_module.version

text

OTA モジュールのファームウェアバージョン。

演算子

演算子

サポートされているデータ型

=

数値、日付、およびテキスト

!=

数値、日付、およびテキスト

>

数値と日付

<

数値と日付

LIKE

text

説明:

  • = および !=:これらの演算子を使用する場合、クエリするフィールドの値は null にすることができます。
  • LIKE:この演算子を使用する場合、プレフィックス一致のみがサポートされます。プレフィックスは 4 文字以上で、バックスラッシュ (\)、スラッシュ (/)、アンパサンド (&)、プラス記号 (+)、ハイフン (-)、感嘆符 (!)、括弧 ()、コロン (:)、チルダ (~)、中括弧 {}、アスタリスク (*)、疑問符 (?) などの特殊文字を含めることはできません。プレフィックスはパーセント記号 (%) で終わる必要があります。

    例:SELECT * FROM device where product_key = "a1*********" and name LIKE "test%" limit 10

上記の操作固有のリクエストパラメーターに加えて、この操作を呼び出すときは共通リクエストパラメーターを設定する必要があります。共通リクエストパラメーターの詳細については、「共通パラメーター」をご参照ください。

レスポンスパラメーター

パラメータータイプ説明
CodeStringiot.system.SystemException

呼び出しが失敗した場合に返されるエラーコード。詳細については、「エラーコード」をご参照ください。

DataSimpleDeviceSearchInfo の配列

呼び出しが成功した場合に返されるデバイス情報。

ActiveTimeString2020-04-04 16:38:18.607

デバイスがアクティブ化された時刻。時刻は GMT 形式です。

DeviceNameStringlight

デバイスの名前。

GmtCreateString2020-04-04 16:38:17.000

デバイスが作成された時刻。時刻は GMT 形式です。

GmtModifiedString2020-04-04 16:38:19.000

デバイス情報が最後に更新された時刻。時刻は GMT 形式です。

GroupsSimpleDeviceGroupInfo の配列

デバイスが属するグループに関する情報。

GroupIdStringa1d21d2fas

グループの ID。

IotIdStringQ7uOhVRdZRRlDnTLv****00100

デバイスの ID。 ID は、IoT Platform がデバイスに発行する一意の識別子です。

NicknameStringSmart light

デバイスのエイリアス。

OTAModulesOTAModuleInfo の配列

各デバイスモジュールのファームウェアに関する情報。

FirmwareVersionStringa1-dads2-dad2

各 OTA モジュールのバージョン番号。

ModuleNameStringSomeSampleModule

OTA モジュールの名前。

ProductKeyStringa1BwAGV****

デバイスが属するプロダクトの [ProductKey]

StatusStringONLINE

デバイスのステータス。有効な値:

  • [ONLINE]:デバイスはオンラインです。
  • [OFFLINE]:デバイスはオフラインです。
  • [UNACTIVE]:デバイスはアクティブ化されていません。
  • [DISABLE]:デバイスは無効になっています。
TagsTagInfo の配列

デバイスタグに関する情報。

TagNameStringColor

タグキー。

TagValueStringRed

タグ値。

ErrorMessageStringシステム例外が発生しました。

呼び出しが失敗した場合に返されるエラーメッセージ。

RequestIdStringE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565

リクエストの ID。

TotalCountLong100

SQL に似た文で SELECT count(*) FROM device を指定した場合、指定した条件に一致する行数が返されます。

SuccessBooleantrue

呼び出しが成功したかどうかを示します。有効な値:

  • [true]:呼び出しは成功しました。
  • [false]:呼び出しは失敗しました。

リクエストの例

https://iot.cn-shanghai.aliyuncs.com/?Action=QueryDeviceBySQL
&IotInstanceId=iot-cn-0pp1n8t****
&SQL=SELECT * FROM device where product_key = "a1*********" limit 100, 20
&<共通リクエストパラメーター>

成功レスポンスの例

XML 形式

<QueryDeviceBySQLResponse>
  <RequestId>501CFABA-2C48-468D-B88C-3AA8E3B3A8F3</RequestId>
  <Data>
        <Status>OFFLINE</Status>
        <IotId>ii1*******</IotId>
        <GmtCreate>2020-04-04 16:38:17.000</GmtCreate>
        <ActiveTime>2020-04-04 16:38:18.607</ActiveTime>
        <GmtModified>2020-04-04 16:38:19.000</GmtModified>
        <ProductKey>a1*********</ProductKey>
        <DeviceName>testDevcieae7f3a</DeviceName>
  </Data>
  <Data>
        <Status>UNACTIVE</Status>
        <IotId>5wt*******</IotId>
        <GmtCreate>2020-04-04 16:37:32.000</GmtCreate>
        <Groups>
              <GroupId>Ix4*******</GroupId>
        </Groups>
        <Groups>
              <GroupId>Xrn*******</GroupId>
        </Groups>
        <Groups>
              <GroupId>J9l*******</GroupId>
        </Groups>
        <OTAModules>
              <ModuleName>SomeSampleModule</ModuleName>
              <FirmwareVersion>a1-dads2-dad2</FirmwareVersion>
        </OTAModules>
        <OTAModules>
              <ModuleName>SampleModule</ModuleName>
              <FirmwareVersion>a1-dads2-dad1</FirmwareVersion>
        </OTAModules>
        <GmtModified>2020-04-04 16:37:32.000</GmtModified>
        <ProductKey>a1*********</ProductKey>
        <DeviceName>testDevcie676a22</DeviceName>
  </Data>
  <Success>true</Success>
</QueryDeviceBySQLResponse>

JSON 形式

{
    "RequestId": "501CFABA-2C48-468D-B88C-3AA8E3B3A8F3",
    "Data": [
        {
            "Status": "OFFLINE",
            "IotId": "ii1*******",
            "GmtCreate": "2020-04-04 16:38:17.000",
            "ActiveTime": "2020-04-04 16:38:18.607",
            "GmtModified": "2020-04-04 16:38:19.000",
            "ProductKey": "a1*********",
            "DeviceName": "testDevcieae7f3a"
        },
        {
            "Status": "UNACTIVE",
            "IotId": "5wt*******",
            "GmtCreate": "2020-04-04 16:37:32.000",
            "Groups": [
                {
                    "GroupId": "Ix4*******"
                },
                {
                    "GroupId": "Xrn*******"
                },
                {
                    "GroupId": "J9l*******"
                }
            ],
            "OTAModules": [
                {
                    "ModuleName": "SomeSampleModule",
                    "FirmwareVersion": "a1-dads2-dad2"
                },
                {
                    "ModuleName": "SampleModule",
                    "FirmwareVersion": "a1-dads2-dad1"
                }
            ],
            "GmtModified": "2020-04-04 16:37:32.000",
            "ProductKey": "a1*********",
            "DeviceName": "testDevcie676a22"
        }
    ],
    "Success": true
}

エラーコード

エラーコードのリストについては、「サービスエラーコード」をご参照ください。