表格查询期间的我的过滤字符串如下所示......
string FilterString = string.Format("PartitionKey eq '{0}'
and RowKey ge '{1}' and RowKey le '{2}'",
partitionKey, startsWith, startsWith);
https://msdn.microsoft.com/library/azure/dd894031.aspx表示你可以为名字做前缀匹配。可以说有三个名字......
当我将startsWith设置为's'时,我希望查询返回超人和蜘蛛侠
当我说
时,上面的查询有效RowKey ge 's' and Rowkey le 't'
然而,我希望这可以在它说...时工作。
RowKey ge 's' and Rowkey le 's'
le 被视为 lt ,恕我直言,它不应该像它那样表现。我做错了吗?
答案 0 :(得分:1)
如果你想回来superman
和spiderman
(不确定DC&amp; Marvel Comics会如何同意,但这是另一个故事:)),你要发出的查询是:< / p>
RowKey ge 's' and Rowkey lt 't'
现在让我们考虑一下这个问题:
RowKey ge 's' and Rowkey le 's'
此查询基本上只返回{{1}} eq RowKey
的数据。举个例子,考虑s
。现在superman
肯定大于superman
所以你的第一个表达式(s
)是RowKey ge 's'
,但同时你的第二个表达式(true
)是{{} 1}}所以整个表达式的结果将是Rowkey le 's'
。
<强>更新强>
要测试字符串,您只需编写如下控制台应用程序:
false
从上面可以看出,false
大于 string a = "s";
string b = "superman";
string c = "sz";
Console.WriteLine(b.CompareTo(a));//Prints 1
Console.WriteLine(b.CompareTo(c));//Prints -1
且小于superman
。