2010-05-24 10 views
15

Wie schreibe ich eine Abfrage, die mich alle item_number mit einem bestimmten Wert beginnen kann?Google App Engine Abfrage Datenspeicher von einer Zeichenfolge starten mit

Zum Beispiel gibt es item_numbers wie diese:

123_abc 
123_xyz 
ierireire 
321_add 
999_pop 

Meine aktuelle Abfrage sieht wie folgt aus:

"wählen Sie aus "+ PayPal_Message.class.getName() +", wo item_number ==‚" + Item_Number + "'order_number desc"

Wie sieht eine Abfrage aus, die alle Elementnummern zurückgeben kann, die mit "123_" beginnen?

+0

Warum ist "item_number" eine Zeichenkette? –

+0

Es erlaubt jede Kombination. – Frank

Antwort

21

von dem Motor docs Google app Zitat:

Tipp: Abfragefilter, keine explizite Art und Weise müssen nur Teil eines String-Wertes zu entsprechen, aber Sie können fälscht Präfixübereinstimmung Ungleichheit unter Verwendung von Filtern:

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

Dies entspricht jeder MyModel-Entität mit einer Zeichenfolgeneigenschaftsrequisite, die mit den Zeichen abc beginnt. Die Unicode-Zeichenfolge u"\ufffd" steht für das größtmögliche Unicode-Zeichen. Wenn die Eigenschaftswerte in einem Index sortiert sind, sind die Werte in diesem Bereich alle Werte, die mit dem angegebenen Präfix beginnen.

+1

Ich fand es für Python, ich benutze Java, wie funktioniert es? – Frank

+2

@Frank "abc" + Character.MAX_VALUE – rgerganov

Verwandte Themen