MYSQL Выберите из таблицы, получите самые новые/последние 10 строк в таблице
Какой самый лучший и простой способ сделать это? В настоящее время мой запрос таков:
SELECT *
FROM chat
WHERE (userID = $session AND toID = $friendID)
OR (userID = $friendID AND toID = $session)
ORDER BY id
LIMIT 10
Здесь показаны первые 10 строк, но не последние 10.
РЕДАКТИРОВАТЬ: Мне нужны последние 10 строк (Что да, DESC делает это) Однако я хочу, чтобы они возвращались в порядке ВОЗРАСТАНИЯ.
3 answers
Чтобы изменить порядок (поэтому получите последние 10 вместо первых 10), используйте DESC
вместо ASC
РЕДАКТИРОВАТЬ
Основываясь на вашем комментарии:
SELECT * FROM (
SELECT *
FROM chat
WHERE (userID = $session AND toID = $friendID)
OR (userID = $friendID AND toID = $session)
ORDER BY id DESC
LIMIT 10
) AS `table` ORDER by id ASC
Если вам нужны последние 10, просто измените ASC на DESC
SELECT *
FROM
chat
WHERE
(userID=$session AND toID=$friendID)
OR
(userID=$friendID AND toID=$session)
ORDER BY id
DESC
LIMIT 10
$con = mysqli_connect("localhost","my_user","my_password","my_db");
$limit = 10;
$query = "SELECT * FROM $table";
$resource = mysqli_query($con,$query);
$total_rows = mysqli_num_rows($resource);
$start = $total_rows-$limit;
$query_limit= $query." LIMIT $start,$limit";
Сначала я установил предел
$limit = 10;
Затем
$total_rows = mysqli_num_rows($resource);
Здесь я взял общее количество затронутых строк.
$start = $total_rows-$limit;
Затем вычитается ограничение из числа строк, чтобы взять начальный номер записи
$query_limit= $query." LIMIT $start,$limit";
, А затем добавил ограничение к запросу. Для получения дополнительной информации об ограничении смотрите эту ссылку https://www.w3schools.com/php/php_mysql_select_limit.asp