0
votes

enregistrements affichés dans l'ordre inverse dans mysql

Voici des exemples de données.

 entrez la description de l'image ici

J'écris ci-dessous la requête pour récupérer les 10 enregistrements les plus récents.

ThreadMessagesModel::where("thread_id", $thread_id)
                   ->orderBy("message_id", "desc")
                   ->paginate(10);

Le problème est qu'il donne le résultat dans l'ordre inverse.

Mon jeu de résultats attendu allait du message id = 15 au message id = 24.

Mais, je passe actuellement du message id = 24 au message id = 15. il montre dans l'ordre inverse. Pouvez-vous suggérer quelque chose?

Voici Laravel éloquent de la requête.

SELECT * FROM `tblmessages` order by message_id desc limit 10


2 commentaires

select * from (SELECT * FROM tblmessages order by message_id desc limit 10) order by message_id asc


Mon jeu de résultats attendu était du message id = 15 au message id = 24. Mais, je reçois actuellement du message id = 24 au message id = 15. Je voulais dire, il montre dans l'ordre inverse. Pouvez-vous suggérer quelque chose? Je ne comprends pas cela.


3 Réponses :


0
votes

Les résultats sont affichés en sens inverse car l'ordre par se termine par desc . Vous pouvez utiliser la requête suivante pour obtenir l'ID le plus élevé trié ascding`

SELECT * FROM `tblmessages` 
WHERE message_id IN (
                        SELECT message_id 
                        FROM `tblmessages` 
                        order by message_id desc 
                        limit 10
                    )


0 commentaires

1
votes
SELECT *
FROM (
       SELECT *
       FROM tblmessage 
       ORDER BY message_id DESC
       LIMIT 10
) main
ORDER BY main.message_id;

0 commentaires

2
votes

Je pense que vous devriez exécuter la requête suivante.

Select * from (
                SELECT * FROM `tblmessages` order by message_id desc limit 10
              ) as a 
order by message_id


0 commentaires