2010-05-24 12 views
15
ile başlar

Tüm item_number öğesinin belirli bir değerle başlamasını bulabilen bir sorgu nasıl yazılır?Google App Engine sorgu veri deposu bir dizeye göre

Örneğin ITEM_NUMBERS bunlar gibi vardır:

(+ PayPal_Message.class.getName "seçim ") +" nerede ITEM_NUMBER == '":

123_abc 
123_xyz 
ierireire 
321_add 
999_pop 

Bulunduğum sorgu şöyle + Item_Number + "'item_number desc"

Tüm item_numbers öğelerini "123_" ile başlatabilecek gibi görünen bir sorgu nedir?

İpucu: google app motor dokümanlardan Alıntı

+0

"item_number" neden bir dizedir? –

+0

Herhangi bir kombinasyona izin verir. – Frank

cevap

21

Sorgu filtreleri bir dize değerinin sadece bir bölümünü maç için açık bir yol var, ama yok sen aldatılabileceğini önek maç kullanarak eşitsizlik filtreler:

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

Bu, tüm MyModel öğelerine, abc karakterleriyle başlayan bir dizi özellik pervanesiyle eşleşir. Unicode dize u"\ufffd" mümkün olan en büyük Unicode karakterini temsil eder. Özellik değerleri bir dizinde sıralandığında, bu aralıkta yer alan değerler, belirtilen önekle başlayan değerlerin tamamıdır.

+1

Bunu Python'da buldum, Java kullanıyorum, nasıl çalışıyor? – Frank

+2

@Frank "abc" + Karakter.MAX_VALUE – rgerganov