2010-05-24 5 views
15

Come scrivere una query in grado di trovarmi tutti numero_articolo iniziare con un determinato valore?Archivio dati query di Google App Engine con inizio stringa con

Per esempio ci sono item_numbers come questi:

123_abc 
123_xyz 
ierireire 
321_add 
999_pop 

mia interrogazione corrente si presenta così:

"selezionare "+ PayPal_Message.class.getName() +" dove item_number == '" + Item_Number + "'order by item_number desc"

Che aspetto ha una query che può restituire tutti gli item_numbers iniziano con "123_"?

+0

Perché "item_number" è una stringa? –

+0

Permette qualsiasi combinazione. – Frank

risposta

21

Citato dalla documentazione del motore app Google:

Tip: filtri di query non hanno un modo esplicito per abbinare solo una parte di un valore di stringa, ma è possibile simulare una partita prefisso utilizzando i filtri di disuguaglianza:

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

Ciò corrisponde a tutte le entità MyModel con una proprietà di stringa che inizia con i caratteri abc. La stringa unicode u"\ufffd" rappresenta il più grande carattere Unicode possibile. Quando i valori della proprietà sono ordinati in un indice, i valori che rientrano in questo intervallo sono tutti i valori che iniziano con il prefisso specificato.

+1

Ho scoperto che è per Python, sto usando Java, come funziona? – Frank

+2

@Frank "abc" + Character.MAX_VALUE – rgerganov

Problemi correlati