SQL搜索的使用限制

本文将为您详细介绍在使用SQL搜索时需要注意的使用限制,以确保您能有效地使用该功能进行资源搜索。

搜索范围限制

  • SQL搜索仅支持对当前保有中的资源进行搜索,不涉及已删除资源。

  • 在使用SELECT *的简写形式进行SQL查询时,系统默认返回以下属性:

    • AccountId

    • RegionId

    • ResourceId

    • ResourceType

    • ResourceName

    • ResourceCreationTime

    • ResourceGroupId

不支持的查询关键字

以下SQL关键字不被支持,系统支持进行NULL值的查询。

  • ALL

  • DISTINCT

  • FROM

  • HAVING

  • JOIN

  • UNION

通配符使用规则

  • 属性值支持:通配符只能用于属性值的匹配,例如:WHERE ResourceId LIKE 'Value%'

  • 属性键不支持:不支持使用通配符匹配属性键,例如:WHERE 'ResourceId%' LIKE 'Value'是不允许的。

  • 后缀通配符:支持使用后缀通配符,例如:

    • ResourceType LIKE 'ACS::ECS::%'

    • ResourceType LIKE 'ACS::ECS::_'

聚合函数的使用

支持以下聚合函数,但有特定的使用限制。

  • 支持的聚合函数:

    • AVG

    • COUNT

    • MAX

    • MIN

    • SUM

  • 支持的聚合函数的限制:

    • 每个聚合函数只能设置一个参数或属性。

    • 聚合函数不能嵌套使用。

    • 当同时使用GROUP BYORDER BY子句时,聚合函数仅能包含一个属性。

    • 不支持在聚合中使用HAVING子句。

多属性数组查询示例

{
  "configTagList": [
    {"configTagName": "A", "tagType": "ecs"},
    {"configTagName": "B", "tagType": "sls"}
  ]
}

此查询将返回资源R:

SELECT * WHERE configTagList.configTagName = 'A' AND configTagList.tagType = 'sls'

解释:

  • 第一个条件configTagList.configTagName = 'A'将在所有标签中搜索名为A的标签。

  • 第二个条件configTagList.tagType = 'sls'在所有标签中搜索类型为sls的标签。

  • 由于资源R同时满足上述两个条件,因此查询结果将包括资源R。