我想使用以下查询从Cosmos DB检索数据:
SELECT * FROM c WHERE c.pi like '09%001'
(这是一个SQL查询,可以在MySQL中使用)
在这里,
pi
是一个字符串值,可以是09001001
或09025001
。有没有一种方法可以在Cosmos DB中使用
LIKE
命令?我知道cosmos DB使用
CONTAINS
,但是当您要专门匹配字符串的开头或结尾时,就不能使用它。 最佳答案
另一种可能性是创建自己的用户定义函数。例如,这是一个正则表达式检查:
function matchRegex(str, pattern) {
let regex=RegExp(pattern);
return regex.test(str);
}
以
MATCH_REGEX
名称创建后,可以像以下方式使用:SELECT udf.MATCH_REGEX("09001001", "^09.*001$")
注意:它将杀死
STARTSWITH
这样的索引优化。尽管允许更复杂的模式。关于azure - 如何在Azure CosmosDB中编写LIKE查询?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50577461/