Between 运算符如何在带有字符串的 dynamodb 中工作
How does the Between operator work in dynamodb with strings
我没想到会从下面的查询中取回值。 1574208000#W2 不在1574207999 和1574208001 之间,但是还是返回了记录。任何人都可以阐明之间的比较是如何完成的吗?
DynamoDb between operator with strings 使用字符串的字典顺序(即它们在字典中出现的顺序)。使用此顺序,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
我没想到会从下面的查询中取回值。 1574208000#W2 不在1574207999 和1574208001 之间,但是还是返回了记录。任何人都可以阐明之间的比较是如何完成的吗?
DynamoDb between operator with strings 使用字符串的字典顺序(即它们在字典中出现的顺序)。使用此顺序,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