本文为您介绍SQL搜索的使用限制。
- 只支持对保有中的资源进行搜索。
- 针对
SELECT *
简写形式的SQL查询,返回的属性限定为AccountId
、RegionId
、ResourceId
、ResourceType
、ResourceName
、ResourceCreationTime
和ResourceGroupId
。 - 不支持查询关键字
ALL
、DISTINCT
、FROM
、HAVING
、JOIN
和UNION
,支持NULL
值查询。 - 通配符限制如下:
- 通配符仅支持属性值,不支持属性键,例如:支持
...WHERE ResourceId LIKE 'Value%'
,不支持...WHERE 'ResourceId%' LIKE 'Value%'
。 - 支持后缀通配符,例如:
...ResourceType LIKE 'ACS::ECS::%'
和...ResourceType LIKE 'ACS::ECS::_'
。
- 通配符仅支持属性值,不支持属性键,例如:支持
- 支持聚合函数,例如:
AVG
、COUNT
、MAX
、MIN
和SUM
。聚合限制如下:- 聚合函数仅可设置一个参数或属性。
- 聚合函数不能嵌套使用。
GROUP BY
子句与ORDER BY
子句同时使用时,聚合函数仅能包含一个属性。- 不支持聚合中的
HAVING
子句。
- 当查询对象数组内的多个属性时,将针对所有数组元素计算匹配项,例如:资源R有标签A和标签B,资源R的数据为:
{ configTagList: [ { configTagName: 'A', tagType: 'ecs' }, { configTagName: 'B', tagType: 'sls' } ] }
此查询将返回资源R:SELECT * WHERE configTagList.configTagName = 'A' AND configTagList.tagType = 'sls'
第一个条件
configTagList.configTagName = 'A'
应用于configTagList
中的所有元素,资源R含有的标签A满足configTagList.configTagName = 'A'
,条件被评估为真;第二个条件configTagList.tagType
应用于configTagList
中的所有元素,资源R含有的标签B满足tagType = 'sls'
,条件也被评估为真。由于这两个条件都是真的,因此将返回资源R。