Я хочу вернуть 2-ю или 3-ю или 4-ю запись из запроса MySQL (на основе запроса по возрастанию ID)
Проблема заключается в том, что я не буду знать идентификатор, только то, что это третья строка в запросе.
Я хочу вернуть 2-ю или 3-ю или 4-ю запись из запроса MySQL (на основе запроса по возрастанию ID)
Проблема заключается в том, что я не буду знать идентификатор, только то, что это третья строка в запросе.
SELECT * FROM table ORDER BY ID LIMIT n-1,1
В нем говорится, что одна запись начинается с записи n.
Принятый ответ неверен на 1, смещение нулевой индексации:
Из doc:
С двумя аргументами первый аргумент определяет смещение первая строка для возврата, а вторая указывает максимальное количество строки для возврата. Смещение начальной строки равно 0 (не 1):
SELECT * FROM tbl LIMIT 5,10; # Извлечение строк 6-15
Таким образом, правильный запрос будет
SELECT * FROM table ORDER BY ID LIMIT n-1,1
Используйте предложение limit (добавьте "limit 3, 1" в конец вашего запроса, чтобы выбрать только третью строку).
Вот еще информация: http://php.about.com/od/mysqlcommands/g/Limit_sql.htm
например, "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
Если вы используете 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