Как сделать выборку с определенного id до смещения?

Ссылка скопирована
1 ответ

Данные примерной таблицы

id | name 1  | serega 2  | sanya 3  | igor 4  | natasha 5  | yulia 6  | lena 7  | vitya

id | name 1 | serega 2 | sanya 3 | igor 4 | natasha 5 | yulia 6 | lena 7 | vitya

В документации к марии https://mariadb.com/kb/en/getting-data-from-mariadb/ сказано что можно делать
такую выборку:

select id, name from some_table where id = 3 limit 3

select id, name from some_table where id = 3 limit 3

Ожидаю получить выборку из трех строк начиная с 3 id, но этого не происходит и выводится только дна строка.
P.S.
Поле id имеет первичный ключ с автоинкрементом

Дополнительно:

Скажите, сколько в этой таблице строк с id=3?

  • Ипатьев,
    Одна строка
  • ну вот
  • теперь попроуйте подумать, какое условие даст вам строки начиная с 3
  • Да я понял что вы попытались с умничать, но как-же пример в документации?
    И есть ли варианты таких выборок?
  • to_east, и где в документации пример с id? а ты точно понимаешь разницу между первичным и внешним ключами, в доках именно про внешний, а ты используешь первичный.
  • to_east, ну то есть вас удивляет тот факт, что если в таблице есть несколько строк с некоторым значением, то можно выбрать из них 5 штук, а если только одно, то выбрать 5 не получается? :)
  • Все я поплыл. Внезапно пришла идея как сделать то что мне нужно.
    Спасибо за внимание!
  • to_east, напиши свой ответ и пометь его решением
  • Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Павел Админов Ответ

    Для выполнения выборки с определенного id до смещения в PHP, вы можете использовать SQL запрос с использованием оператора LIMIT. LIMIT позволяет вам ограничить количество строк, которые возвращаются из базы данных.

    Пример SQL запроса для выборки с определенного id до смещения выглядит следующим образом:

    SELECT * FROM table_name WHERE id >= :id OFFSET :offset LIMIT :limit

    SELECT * FROM table_name WHERE id >= :id OFFSET :offset LIMIT :limit

    Здесь :id - это id, с которого вы хотите начать выборку, :offset - это смещение от начального id, а :limit - это количество строк, которые вы хотите выбрать.

    Пример PHP кода для выполнения данного запроса:

    $id = 10; // начальный id
    $offset = 5; // смещение
    $limit = 10; // количество строк
     
    $sql = "SELECT * FROM table_name WHERE id >= :id OFFSET :offset LIMIT :limit";
    $stmt = $pdo->prepare($sql);
    $stmt->bindParam(':id', $id, PDO::PARAM_INT);
    $stmt->bindParam(':offset', $offset, PDO::PARAM_INT);
    $stmt->bindParam(':limit', $limit, PDO::PARAM_INT);
    $stmt->execute();
     
    $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
     
    foreach ($result as $row) {
        // обработка данных
    }

    $id = 10; // начальный id $offset = 5; // смещение $limit = 10; // количество строк $sql = "SELECT * FROM table_name WHERE id >= :id OFFSET :offset LIMIT :limit"; $stmt = $pdo->prepare($sql); $stmt->bindParam(':id', $id, PDO::PARAM_INT); $stmt->bindParam(':offset', $offset, PDO::PARAM_INT); $stmt->bindParam(':limit', $limit, PDO::PARAM_INT); $stmt->execute(); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); foreach ($result as $row) { // обработка данных }

    В этом примере мы используем PDO для выполнения SQL запроса с привязкой параметров. Мы задаем начальный id, смещение и количество строк, которые мы хотим выбрать, и затем выполняем запрос с этими параметрами.

    Надеюсь, это поможет вам решить вашу проблему с выборкой с определенного id до смещения в PHP. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно