LIKE - Cosmos DB 中的查询语言

关键字 LIKE 是布尔值,具体取决于特定字符串是否与指定的模式匹配。 模式可以包含常规字符和通配符。

小窍门

可以使用关键字或LIKE系统函数编写逻辑等效的查询RegexMatch。 无论选择哪个选项,都会观察到相同的索引利用率。 要使用的选项主要基于语法首选项。

注释

由于LIKE可以利用索引,因此应为要比较的属性LIKE

可以将以下通配符与 LIKE 配合使用:

Description Example
% 包含零个或多个字符的任意字符串。 WHERE c.description LIKE "%SO%PS%"
_ (下划线) 任何单个字符。 WHERE c.description LIKE"%SO_PS%"
[ ] 指定范围()或集([a-f][abcdef])内的任何单个字符。 WHERE c.description LIKE "%SO[t-z]PS%"
[^] 不在指定范围()或集([^a-f][^abcdef])内的任何单个字符。 WHERE c.description LIKE "%SO[^abc]PS%"

% 字符与零个或多个字符的任何字符串匹配。 例如,通过在模式的开头和结尾放置一个 % ,以下查询将返回指定字段包含该短语的所有项作为子字符串:

SELECT VALUE
    p.name
FROM
    products p
WHERE
    p.name LIKE "%driver%"

如果仅在模式末尾使用了字符 % ,则仅返回带有以以下开头的说明 fruit的项目:

SELECT VALUE
    p.name
FROM
    products p
WHERE
    p.name LIKE "fruit%"

同样,模式开头的通配符指示要匹配具有指定值作为前缀的值:

SELECT VALUE
    p.name
FROM
    products p
WHERE
    p.name LIKE "%Road"

关键字 NOT 反转关键字的表达式计算结果 LIKE 。 此示例返回与表达式不匹配LIKE的所有项。

SELECT VALUE
    p.name
FROM
    products p
WHERE
    p.name NOT LIKE "%winter%"

可以使用子句搜索包含一个或多个通配符的 ESCAPE 模式。 例如,如果要搜索包含字符串 20%的说明,则不想将说明解释 % 为通配符。 本示例将^转义字符解释为转义符,以便可以转义特定实例。%

SELECT VALUE
    p.name
FROM
    products p
WHERE
    p.description LIKE "%20^%%" ESCAPE "^"

可以将通配符括在括号中,以将它们视为文本字符。 将通配符括在括号中时,将删除任何特殊属性。 此表包含文本字符的示例。

已分析的值
LIKE "20-30[%]" 20-30%
LIKE "[_]n" _n
LIKE "[ [ ]" [
LIKE "]" ]