12
votes

MySQL Sélectionnez de la table, obtenez les plus récents / 10 dernières lignes dans le tableau

Quel est le meilleur moyen et le plus simple de le faire? Ma requête est actuellement: xxx

ceci affiche les 10 premières lignes, pas les 10 derniers.

EDIT: Je veux les 10 dernières lignes (qui oui, descs Ceci) Cependant, je veux qu'ils soient retournés dans l'ordre croissant.


1 commentaires

Utilisez l'option Trier sur la base de données.


4 Réponses :


26
votes

Pour inverser la commande (obtenez donc 10 derniers au lieu des 10 premiers), utilisez desc au lieu de ASC

EDIT

basé sur votre commentaire: xxx


2 commentaires

J'ai oublié d'inclure dans ma question, je souhaite les 10 dernières lignes (oui en utilisant DESC), mais dans l'ordre ASC.


Je sais que c'est un vieux post, mais c'est juste ce que je cherchais. Merci :)



1
votes

Si vous voulez les 10 derniers, changez simplement ASC vers Desc

SELECT * 
FROM 
chat 
WHERE 
(userID=$session AND toID=$friendID) 
OR 
(userID=$friendID AND toID=$session) 
ORDER BY id 
DESC
LIMIT 10


1 commentaires

Oups, j'ai oublié d'inclure dans ma question, les 10 derniers (que oui peuvent être effectués avec Desc, mais dans l'ordre ASC.



0
votes
   $query_limit= $query." LIMIT $start,$limit";

4 commentaires

Les décharges de code sans explication sont rarement utiles. Veuillez ajouter un certain contexte à votre réponse.


Cela pourrait être un problème si vous avez un filtre. Certaines données pourraient être ignorées.


@Chris est tout bon ...? J'ai ajouté peu d'explication à la réponse


@ Mohaschin217, vous avez ajouté des explications, mais vous utilisez l'ancien mySQL _ * fonctionne dans votre réponse. Si vous écrivez un nouveau code, s'il vous plaît N'utilisez pas le MySQL _ * Fonctions . Ils sont vieux et cassés, ont été obscètes dans PHP 5.5 (ce qui est si ancien qu'il ne reçoit plus même les mises à jour de la sécurité) et complètement supprimée dans PHP 7. Utilisez PDO ou mysqli _ * avec Déclarations préparées et la liaison des paramètres à la place. Voir Stackoverflow.com/q/12859942/354577 pour plus de détails.



0
votes

Tout d'abord, sélectionnez les 10 derniers dans la table, puis commandez-les sous ordre croissant.

SELECT * FROM (SELECT * FROM table ORDER BY id DESC LIMIT 10) sub ORDER BY id ASC


0 commentaires