Google App Engine查询数据按字符串开头存储

时间:2010-05-24 21:09:58

标签: google-app-engine

如何编写一个可以找到我所有item_number以某个值开始的查询?

例如,有这样的item_numbers:

123_abc
123_xyz
ierireire
321_add
999_pop

我当前的查询如下所示:

“select from”+ PayPal_Message.class.getName()+“where item_number =='”+ Item_Number +“'order by item_number desc”

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

1 个答案:

答案 0 :(得分:21)

引自谷歌应用引擎文档:

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

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

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