Я попробовал смещение в simpledb, но его не работает, поскольку он работает в mysql, и я хочу сделать подкачку для моей базы данных api в php, чтобы я отправил pagenumber и pagelength в запрос, и он вернет данные только этой страницы. Как это я могу сделать в simpledb.
select * from second where time_stamp is not null and gibid = '54' and gibview = 'O' order by time_stamp asc limit $pagelength
поскольку смещение не работает, поэтому я не могу добавить смещение в запросе. У меня есть google и найти, что появился следующий токен, но я не получаю nexttoken. как проверить на следующее.
Пожалуйста помоги .
благодаря
Для команды Simpledb (этот вопрос задавался на их форумах), используя следующий токен, это способ сделать это.
Если вы хотите захватить, скажите 2500-2600-й элемент из списка и не перебирайте по первому 2500, команда simpledb рекомендует делать счет (*) до 2500, потому что это быстро, а затем захватывает следующий токен из этого результата а затем выдает реальный запрос, чтобы вытащить имена и атрибуты.
Умело взломать тот факт, что лимит не принимает начальный индекс, я думал, но должен сэкономить вам некоторую производительность. Просто хотел поделиться этим.
$ pagelenght должно быть:
$pagenum = 4; //current page $numitems = 20; //items per page $row_from = $pagenum * $numitems - $numitems; $pagelenght = $row_from.','.$numitems; in the end pagelenght should look like this $pagelenght = '0,20'; //first page $pagelenght = '20,20'; //second page $pagelenght = '40,20'; //third page $pagelenght = 60,20'; //forth page
что-то вроде этого, первый номер из какой строки, а второй число, сколько элементов на одной странице.
Выполнено с помощью NextToken в простой db
$files = $this->db->select($domain, $query, $offset)
Здесь $ offset – следующая строка, которая будет передаваться в запросе. и вернется на следующую страницу.
Я подтверждаю, что LIMIT в SimpleDB принимает только один аргумент.
Разумеется, я попробовал следующий запрос (домен Person существует): «SELECT * FROM Person LIMIT 20, 20», и у меня был следующий ответ: Ошибка клиента: указанный синтаксис выражения запроса недействителен.
Даже если ограничение не указано, SimpleDB применяет предел по умолчанию 100, максимальный предел составляет 2500 строк. Я хочу подчеркнуть, что LIMIT работает иначе, чем другие базы данных. LIMIT 100 означает, что вы получите 100 результатов за раз, и вы получите еще одну партию из 100 результатов со следующим токеном (при условии, что данных достаточно, конечно).
Способ сделать разбиение на страницы – использовать токены. Уже полученный токен может быть сохранен в сеансе, поэтому можно вернуться к предыдущим страницам.