comment obtenir les 3 dernières entrées d'une table? - SQL/NoSQL - Programmation
Marsh Posté le 29-08-2005 à 15:53:23
non car il fera dans l'ordre :
un|deux|trois
Merci pour ton aide
Marsh Posté le 29-08-2005 à 15:56:57
Heu oui c'est logique
Essayes
SELECT * FROM table WHERE clé IN (select * from table order by clé desc limit 0,3) ORDER BY clé ...
si tu peux le faire.
Maintenant y'a peut-être plus propre.
Marsh Posté le 29-08-2005 à 16:01:53
heu...
non ça marche pas. Message d'erreur de sous requête non supportée avec IN et LIMIT avec ma version de mysql.
Merci pour ton inspiration .
Quelqu'un a une autre idée?
Yaurait pas une variable qui dit combien on a d'entrées dans la table?
Merci
Marsh Posté le 29-08-2005 à 16:43:40
count(*) pourquoi ?
Marsh Posté le 29-08-2005 à 16:48:42
parce que dans mon problème yaurait pas moyen de mettre un truc du genre:
limit count(*)-3,count(*) |
pour lister les 3 dernières enntrées?
Je galère depuis 1h30 et j'arrive pas à résoudre mon problème....
Marsh Posté le 30-08-2005 à 14:35:42
up, siouplai c'est important pour moi.
ou alors peut être un changement de clé pour y parvenir?
Si qq'un a une idée, merci.
Marsh Posté le 30-08-2005 à 16:13:28
Fait ça en deux requêtes.
Marsh Posté le 30-08-2005 à 16:19:15
SELECT * FROM table t1 WHERE t1.clé IN (select t2.clé from table t2 limit 0,3) ORDER BY t1.clé
ha oué non j'avais pas vu pour les sous-requetes non supportées...
Marsh Posté le 30-08-2005 à 17:29:56
damcmoi a écrit : parce que dans mon problème yaurait pas moyen de mettre un truc du genre:
|
non, à moins de passer d'abord une requête qui compte le nombre de lignes, puis d'utiliser le résultat pour construire la 2ème requête
Marsh Posté le 30-08-2005 à 17:37:07
et pourquoi ne pas faire après un tri inverse dans le langage que tu utilise pour exploiter ta BD?
Par exemple en PHP un array_reverse ()...
Mais bon on sort de MySQL là...
Marsh Posté le 29-08-2005 à 15:47:54
Salut, je suis novice
j'ai une table en mysql:
un|deux|trois|quatre|cinq|six|sept|huit|neuf|dix
ma clé va de 1 pour "un" à 10 pour "dix".
je veux obtenir les 3 derniers éléménts de la table : huit|neuf|dix.
Le pb c'est que si je fais:
select * from table order by clé desc limit 0,3
j'obtiens dix|neuf|huit.
Quelqu'un peut il me dire comment faire?
merci
Message édité par damcmoi le 29-08-2005 à 15:54:47