Хранилище данных запросов Google App Engine с помощью строки начинается с

Как написать запрос, который может найти меня во всех элементах item_number с определенным значением?

Например, есть такие элементы 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_"?

Ответы

Ответ 1

Цитируется из документации по движку Google:

Совет. Фильтры запросов не имеют явного способа сопоставления только части строкового значения, но вы можете подделывать соответствие префикса с использованием фильтров неравенства:

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

Соответствует каждому объекту MyModel с атрибутом string, который начинается с символов abc. Строка unicode u"\ufffd" представляет собой максимально возможный символ Юникода. Когда значения свойств сортируются в индексе, значения, которые попадают в этот диапазон, представляют собой все значения, начинающиеся с данного префикса.