Maison > base de données > tutoriel mysql > Comment récupérer de manière fiable les N dernières lignes par ordre croissant d'une table MySQL ?

Comment récupérer de manière fiable les N dernières lignes par ordre croissant d'une table MySQL ?

Mary-Kate Olsen
Libérer: 2024-12-04 09:20:13
original
1041 Les gens l'ont consulté

How to Reliably Retrieve the Last N Rows in Ascending Order from a MySQL Table?

Récupérer les N dernières lignes par ordre croissant d'une table MySQL manipulable

Lors de la récupération des N dernières lignes d'une base de données MySQL potentiellement manipulable, en garantissant à la fois chronologique ( décroissant) et l’ordre croissant peuvent être difficiles. Cet article résout ce problème en proposant une solution à l'aide d'une sous-requête.

La requête suivante vise à sélectionner les 50 dernières lignes d'une table classées par identifiant de clé primaire par ordre décroissant :

SELECT *
FROM `table`
ORDER BY id DESC
LIMIT 50;
Copier après la connexion

Cependant, cette approche présente un défaut : si des lignes sont supprimées, les lignes suivantes ne seront pas récupérées avec précision dans l'ordre croissant. order.

De même, la requête ci-dessous ne parvient pas à résoudre le problème de manipulation :

SELECT *
FROM `table`
WHERE id > ((SELECT MAX(id) FROM chat) - 50)
ORDER BY id ASC;
Copier après la connexion

Solution utilisant une sous-requête :

Pour surmonter ces limitations , une sous-requête peut être utilisée :

SELECT * FROM
(
 SELECT * FROM table ORDER BY id DESC LIMIT 50
) AS sub
ORDER BY id ASC;
Copier après la connexion

Cette requête sélectionne les 50 dernières lignes de la table dans ordre décroissant à l'aide d'une sous-requête, puis les réordonne par ordre croissant avant de récupérer le résultat final.

Cette approche permet une récupération précise des N dernières lignes, quelles que soient les modifications ou suppressions apportées à la table, en veillant à ce que les données soient affichées dans l'ordre chronologique souhaité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal