查询Azure表存储复合分区键

时间:2014-06-06 14:25:02

标签: azure azure-table-storage

我在Azure Table存储中有一个表,其中包含像这样的分区键

__(哪里是某种非固定长度的字符串)

示例可以是"96a38291-c654-461f-a344-6d0157c382b9__6960"

我认为我得到了正确的过滤器以满足我的需求,并希望澄清其工作原理。鉴于上述模式,__后有许多不同的guid和不同的后缀。

执行(PartitionKey ge '96a38291-c654-461f-a344-6d0157c382b9') and (PartitionKey le '96a38291-c654-461f-a344-6d0157c382b9a')

之类的查询

我会得到所有guid等于96a38291-c654-461f-a344-6d0157c382b9的实体,(注意第二部分末尾的小a)。

我刚用一些guid和postfix来测试它,它似乎只返回匹配guid的行。有人可以解释为什么这种方法有效,如果有些情况下它不起作用,请勾勒出这些。你可以假设guid始终是一个长度相同的有效guid。

我认为它与字符串的比较是先从左边的char完成的。

2 个答案:

答案 0 :(得分:0)

它有效,因为它是一个字符串比较;你要求所有以' guid'开头的行,并且“不那么”'比#guida'。因为' a'小写大于' '在ASCII表中,你的' a'作为搜索的上边界。所以' guid '小于#guida'。

答案 1 :(得分:0)

在使用guid作为大于值并且使用guid +'a'作为小于值时,您只选择以guid开头的分区,后跟小于'a'的ascii字符,其中'_'是

如果这种解释没有意义,请告诉我。

谢谢!

相关问题