Voici des exemples de données.
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
3 Réponses :
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
)
SELECT *
FROM (
SELECT *
FROM tblmessage
ORDER BY message_id DESC
LIMIT 10
) main
ORDER BY main.message_id;
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
select * from (SELECT * FROM tblmessages order by message_id desc limit 10) order by message_id ascMon 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.