首页 文章

Cosmos DB,C#SQL Api - 不区分大小写的WHERE子句

提问于
浏览
0

我正在使用C#SQL Api(DocumentDB)处理Azure Cosmos DB的项目,并且需要知道是否可以使用不区分大小写的WHERE子句 . 从我在网上找到的内容来看似乎还不可能 .

我想写一个像这样的查询:

SELECT l.CustomerName, l.LogDetail
FROM Logs l
WHERE l.CustomerName = 'Acme'

并且返回的客户名称等于“ACME”,“Acme”或甚至“aCmE” . 我不想在扫描中受到性能影响 . 我更喜欢让查询使用索引 .

我知道我可以创建第二个CustomerName字段,其中包含要过滤的所有小写值,但我希望看看是否可以避免这种情况 . 这可能吗?

1 回答

  • 1

    不幸的是,除非它是在过去两个月内添加的,否则 this is not possible .

    如果在索引字段上使用ToLower()或ToUpper(),则会导致扫描,因此这不是一个选项 .

    一些有效的解决方案就像你说的那样,用一个不区分大小写的字符串添加另一个字段,或者只插入具有特定情况的数据 . 听起来你的数据库不区分大小写,所以为什么不确保这些情况真的不敏感?

相关问题