CosmosDB ARRAY_CONTAINS 中可以进行模糊搜索吗?

问题描述 投票:0回答:1

我正在尝试使用数组包含搜索 CosmosDB 数组,如下

SELECT c.id, c.PromotionName FROM c where ARRAY_CONTAINS(c.Variants, '0828570001006')

这工作正常,但我不知道如何使值模糊,以便我只能匹配前 7 位数字,因此查询如下所示

SELECT c.id, c.PromotionName FROM c where ARRAY_CONTAINS(c.Variants, '0828570')

但仍然与上面的查询匹配(以及更多)

这可能吗?

azure-cosmosdb azure-cosmosdb-sqlapi
1个回答
0
投票

您可以执行搜索,检查数组中的变体是否以特定字符串开头,如下所示:

select c.id, c.PromotionName
from c
where exists (
    select value true
    from v in c.Variants
    where startswith(v, '0828570')
)

请注意,这不是模糊搜索。

© www.soinside.com 2019 - 2024. All rights reserved.