Je veux sélectionner les 50 dernières lignes de la base de données MySQL dans la colonne nommée id qui est la clé primaire . L'objectif est que les lignes soient triées par identifiant dans l' ordre ASC , c'est pourquoi cette requête ne fonctionne pas
SELECT
*
FROM
`table`
ORDER BY id DESC
LIMIT 50;
Il est également remarquable que les lignes puissent être manipulées (supprimées) et c'est pourquoi la requête suivante ne fonctionne pas non plus
SELECT
*
FROM
`table`
WHERE
id > ((SELECT
MAX(id)
FROM
chat) - 50)
ORDER BY id ASC;
Question : Comment est-il possible de récupérer les N dernières lignes de la base de données MySQL qui peuvent être manipulées et être dans l'ordre ASC?
Si vous avez un champ de date qui stocke la date (et l'heure) à laquelle le chat a été envoyé ou tout champ qui est rempli de manière incrémentielle (ordre par DESC) ou de manière désinscrémentale (ordre par ASC) par ligne, placez-le comme deuxième colonne sur dont les données doivent être ordonnées.
C'est ce qui a fonctionné pour moi !!!! j'espère que cela aidera !!!!
la source
enregistrer les ressources faire une requête, il n'est pas nécessaire de faire des requêtes imbriquées
la source
LIMIT
en id décroissant), et le résultat final aura des identifiants ascendants.Remarques: *
id
doit être unique. * Vous pouvez contrôler le nombre de lignes renvoyées en remplaçant le30
dans la requêtela source