2010-05-24 51 views
15

如何编写一个查询,可以找到我所有的item_number都以某个值开始?Google App引擎查询数据存储由字符串开始

例如有ITEM_NUMBERS这样的:

123_abc 
123_xyz 
ierireire 
321_add 
999_pop 

我当前的查询看起来是这样的:

+ PayPal_Message.class.getName “从选择 ”()+“ ITEM_NUMBER地方==“” + Item_Number +“'order by item_number desc”

什么是查询看起来可以返回所有item_numbers以“123_”开头?

+0

为什么“item_number”是一个字符串? – 2010-05-30 22:42:20

+0

它允许任何组合。 – Frank 2010-05-31 16:05:32

回答

21

从谷歌应用程序引擎的文档引用:

提示:查询过滤器没有一个明确的方式来匹配只是一个字符串值的一部分,但你可以伪造使用前缀匹配不等式过滤条件:

db.GqlQuery("SELECT * FROM MyModel WHERE prop >= :1 AND prop < :2", "abc", u"abc" + u"\ufffd") 

这将匹配每个MyModel实体和字符串属性prop,以字符abc开头。 Unicode字符串u"\ufffd"表示可能的最大Unicode字符。当属性值在索引中排序时,落在此范围内的值都是以给定前缀开头的所有值。

+1

我发现它是用于Python,我使用Java,它是如何工作的? – Frank 2010-05-25 02:34:14

+2

@Frank“abc”+ Character.MAX_VALUE – rgerganov 2011-06-25 09:47:47

相关问题