Подтвердить что ты не робот

Возвращение n-й записи из запроса MySQL

Я хочу вернуть 2-ю или 3-ю или 4-ю запись из запроса MySQL (на основе запроса по возрастанию ID)

Проблема заключается в том, что я не буду знать идентификатор, только то, что это третья строка в запросе.

4b9b3361

Ответ 1

SELECT * FROM table ORDER BY ID LIMIT n-1,1

В нем говорится, что одна запись начинается с записи n.

Ответ 2

Принятый ответ неверен на 1, смещение нулевой индексации:

Из doc:

С двумя аргументами первый аргумент определяет смещение первая строка для возврата, а вторая указывает максимальное количество строки для возврата. Смещение начальной строки равно 0 (не 1):

SELECT * FROM tbl LIMIT 5,10; # Извлечение строк 6-15

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

SELECT * FROM table ORDER BY ID LIMIT n-1,1

Ответ 3

Используйте предложение limit (добавьте "limit 3, 1" в конец вашего запроса, чтобы выбрать только третью строку).

Вот еще информация: http://php.about.com/od/mysqlcommands/g/Limit_sql.htm

Ответ 4

например, "LIMIT 10, 5", он пропустит количество записей, указанных первым номером, а затем покажет количество записей, указанных вторым номером. Другими словами, это "LIMIT skip, show".

SELECT * FROM tblTesting LIMIT 3, 6

будет отображаться с 4-й записи до 9-й записи, общее количество отображаемых записей 6

если вы хотите показывать убывающий порядок, используйте DESC

SELECT * FROM tblTesting ORDER BY column_name DESC LIMIT 3, 6

Ответ 5

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

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";

if ($result = mysqli_query($link, $query)) {

    /* seek to row no. 400 */
    mysqli_data_seek($result, 399);

    /* fetch row */
    $row = mysqli_fetch_row($result);

    printf ("City: %s  Countrycode: %s\n", $row[0], $row[1]);

    /* free result set*/
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Подробнее в руководстве по PHP: http://php.net/manual/en/mysqli-result.data-seek.php