Between运算符如何在具有字符串的dynamodb中工作

时间:2019-11-19 20:35:28

标签: amazon-dynamodb between

我不希望从下面的查询中获取一个值。 1574208000#W2不在1574207999和1574208001之间。但是仍返回记录。任何人都可以阐明如何进行比较吗?

Dynamo Screen shot

1 个答案:

答案 0 :(得分:0)

带有字符串的运算符之间的

DynamoDb以字符串的字典顺序(即,它们在字典中出现的顺序)工作。使用此顺序,1574208000#W2的确介于1574207999和1574208001之间

如果两个字符串长度相同并且在相同位置包含相同字符,则在字典上是相等的。

除此之外,要确定哪个字符串先出现,请从左到右比较两个字符串的对应字符。两个字符串不同的第一个字符确定哪个字符串先出现。使用Unicode字符集比较字符。所有大写字母都在小写字母之前。如果两个字母大小写相同,则使用字母顺序进行比较。

如果两个字符串在相同位置包含相同字符,则最短的字符串在前。 Ref

要尝试此操作,您可以尝试使用Java中的一个简单示例

String a = "1574207999", b = "1574208000#W2", c = "1574208001";
System.out.println(a.compareTo(b)); // prints negative number, indicating a < b
System.out.println(b.compareTo(c)); // prints negative number, indicating b < c