Как суммировать результаты запроса MySQL, чтобы выбрать одну строку за другой

пожалуйста, как я могу запросить таблицу базы данных по одной строке за раз, не повторяя одну и ту же строку, пока все строки не будут выбраны.

Например

Я хочу, чтобы запрос выбирал первую строку в первый раз, а вторую — во вторую, пока не будут выбраны все строки. Обратите внимание, что я не хочу использовать случайный выбор, результат может повториться.

заранее спасибо

-2

Решение

mysql имеет опцию OFFSET, которая будет отлично работать для того, что вы хотите (не то, чтобы я понимаю, почему вы делаете то, что вы хотите сделать). например

$offset = 0;
$query = 'SELECT * FROM my_table LIMIT 1 OFFSET='. $offset;
$offset++;
$query = 'SELECT * FROM my_table LIMIT 1 OFFSET='. $offset;//offset is now 1
$offset++;
$query = 'SELECT * FROM my_table LIMIT 1 OFFSET='. $offset;//offset is now 2

Я думаю, что в вашем случае вы бы бросили это в петле. Я просто показываю это, как показано выше, чтобы проиллюстрировать концепцию. Или, может быть, вы передадите $ offset в качестве параметра. В любом случае это должно дать вам хорошую идею

Что делает смещение? Он в основном игнорирует записи до подсчета смещения. так что если у меня есть записи 1,2,3,4,5 и я выбираю из этого списка со смещением 2, я получу 3,4,5 как мой список.

W3 объяснит это лучше меня

Так что этот вопрос касается запроса и ответа API

Ваш ответ на первый запрос API должен содержать last_offset. Скажите вашему потребителю передать смещение в качестве параметра по их запросу. my.api.com?offset=1 после проверки и проверки смещения параметра вы можете включить значение в запрос, иначе используйте смещение по умолчанию 0

Если они получили last_offset = 2 в последнем ответе, они должны передать смещение = 3 при следующем запросе.

0

Другие решения

Один из способов — сделать первичный ключ таблицы последовательностью чисел, начиная с произвольного числа.
Получите начальный индекс.
При написании sql-запроса просто напишите цикл и сделайте where = id + 1. Это даст вам каждую строку за раз.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector