Как получить строки из таблицы ниже, используя GQL-запрос движка приложения Google (python)? - PullRequest
1 голос
/ 27 августа 2009
List_name   Email
==========  ==================
andrew      adam@gmail.com
adam        adam@gmail.com
smith       adam@gmail.com
john        adam@gmail.com
andrew      andrew@gmail.com
adam        andrew@gmail.com
smith       andrew@gmail.com
john        andrew@gmail.com
andrew      john@gmail.com
adam        john@gmail.com
smith       john@gmail.com
john        john@gmail.com
andrew      smith@gmail.com
adam        smith@gmail.com
smith       smith@gmail.com
john        smith@gmail.com

В приведенной выше таблице email_ids повторяются, я хочу отобразить все электронные письма в приведенной выше таблице без повторов.

Здесь только 4 электронных письма, я хочу получить только 4 строки из таблицы, возможно ли это с помощью GQL-запроса в движке приложения goolge.

И еще одна вещь, которую я хочу использовать для просмотра электронных писем (10 писем на страницу),

То есть, если в таблице 15 электронных писем, необходимо отобразить 10 электронных писем на 1-й странице и 5 электронных писем на 2-й странице.

Пейджинг очень важен!

Ответы [ 2 ]

4 голосов
/ 27 августа 2009

Если вы привыкли работать с реляционной базой данных, Google App Engine может показаться необычным. Синтаксис запроса очень ограничен. Вместо того чтобы помещать все в простую таблицу и писать сложные запросы, вы должны поместить все в сложные структуры данных и затем писать простые запросы.

Вы должны привыкнуть к созданию нескольких разных сущностей, обычно по одному для каждого первичного ключа для возможного запроса. В этом случае у вас должен быть Entity UniqueEmailAddress или что-то в этом роде. Каждый раз, когда вы добавляете запись, получите UniqueEmailAddress с этим именем и обновите его или создайте, если он не существует. Тогда вы можете просто запросить уникальный адрес электронной почты.

1 голос
/ 27 августа 2009

Вы можете использовать функцию set в python, вы сможете удалить все дубликаты. Я не думаю, что есть способ сделать это GQL.

>>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']
>>> fruit = set(basket)               # create a set without duplicates
>>> fruit
set(['orange', 'pear', 'apple', 'banana'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...