IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

[MySQL] Recupere les entrees d'une base sauf la derniere ?


Sujet :

Langage SQL

  1. #1
    BuG
    BuG est déconnecté
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 44
    Points : 23
    Points
    23
    Par défaut [MySQL] Recupere les entrees d'une base sauf la derniere ?
    Bonjour a tous !

    Voila le mysql n'es pas jeune dans mon esprit, mais j'ai besoin de faire un peu de maintenance sur un de mes script ( un de news ) et donc la j'aimerais juste le modifier pour selectionner uniquement tt les requetes sauf la toute derniere ( en id ).
    Pour l'instant ma requete est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM $nameTableMySql ORDER BY id DESC;
    il faut remplacer le * par quoi pour faire ce que je cherche a faire ?

    Merci beaucoup @+

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 81
    Points : 82
    Points
    82
    Par défaut
    bonjour...

    je n'ai pas compri votre pbm? essaye d'être plus claire, je pourrais peut être te venir en aide...cordialement.

  3. #3
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    Le cher ROWID d'Oracle n'existe pas sous MySQL.
    La solution est de te le fabriquer toi meme en créant un champ rowid en auto incrementation dans ta table.

    Bon courage
    Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac)

  4. #4
    BuG
    BuG est déconnecté
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 44
    Points : 23
    Points
    23
    Par défaut ...
    Tu veux dire que c'est impossible et qu'il n'ya aucune commande permettant de faire ce que je cherche a faire ? je suis assez étonné.

    Je ne connais pas le rowid d'oracle, donc je ne saurais le recréé moi même, pourrais tu m'en expliquer le fonctionnement ?

    ( pour ceux qui n'ont pas compris le problemes, en fait j'ai des news dans ma base de donnée, et la derniere news est affiché en haut ailleurs par un script utilisant la commande limite pour selectionner uniquement la derniere mais maintenant la news est en double, donc je voudrais ne pas afficher celle qui est deja affiché )

    Merci beaucoup @+

  5. #5
    Membre actif Avatar de TheRussian
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 200
    Points : 241
    Points
    241
    Par défaut
    Bonjour,

    est-ce que dans la table il y a la date de la news ou bien un numéro d'ordre car de cette manière on peut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT TOP 1 * FROM $nameTableMySql ORDER BY CritereTri DESC;
    TOP, LIMIT, ... c'est fonction du SGBD.

  6. #6
    BuG
    BuG est déconnecté
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 44
    Points : 23
    Points
    23
    Par défaut ...
    Oui il y'a id et date.

    Je vais etudier cette fonciton top.

    Merci @+

  7. #7
    BuG
    BuG est déconnecté
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 44
    Points : 23
    Points
    23
    Par défaut ...a
    J'ai essayer ta ligne de commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/free.fr/b/6/parisdubactivitys/main.php on line 40
    Je ne trouve rien sur cette fonction top ?

    Merci @+

  8. #8
    Membre actif Avatar de TheRussian
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 200
    Points : 241
    Points
    241
    Par défaut
    Oups, je suis allé un peu vite, TOP c'est pour SQL Server, avec MySQL ce doit être LIMIT.

    Désolé.

  9. #9
    BuG
    BuG est déconnecté
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 44
    Points : 23
    Points
    23
    Par défaut ...
    ok merci, ca serait quelle type de parametre a associé a limit ?

    Merci @+

  10. #10
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    le TOP (SqlServer) ou le Limit (MySql) rameneront que les x premiers enregistrements de la requete (trié ou pas). Mais en ce qui concerne l'ordre de creation des enregistrements dans la table, c'est different.

    Chez oracle, chaque enregistrement possede un ROWID qui les differencie de maniere unique dans la base. C'est une sequence qui s'incremente a chaque nouvelle enregistrement.

    Ce que tu peux faire, c'est declarer un champ rowid (tu peux changer ce non si tu veux ) avec la fonction auto inc.
    Comme ca, a chaque fois que tu creras un enregistrement dans cette table, ce nombre s'auto incrementera tout seul et te servira de critere a ta requete.

    Peut etre que quelqu'un connait un truc pour t'eviter tout ceci, mais moi pas

    Bon courage
    Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac)

  11. #11
    BuG
    BuG est déconnecté
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 44
    Points : 23
    Points
    23
    Par défaut ...
    Ah mais si j'ai une colonne id c'est sur ca, avec un identifiant pour chaque entré, c'est comme ca que je les selectionne dans l'ordre pour afficher tt les news dans l'ordre ORDER BY id DESC.
    Mais le truc c'est que je ne trouve pas la commande qui permettrait de selectionner tout les entrées sauf la derniere( en numero d'id, cad tt sauf le numero d'id le plus grand ).
    Merci beaucoup @+

  12. #12
    Membre actif Avatar de TheRussian
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 200
    Points : 241
    Points
    241
    Par défaut
    Je n'avais pas tout compris .

    Si la version de MySQL tolère les requêtes imbriquées ceci devrait marcher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT * 
    FROM $nameTableMySql 
    where id < (select MAX(id)
                      from $nameTableMySql )
    ORDER BY id DESC;
    Et la il devrait s'afficher toutes la table sauf le plus grand 'id'.

  13. #13
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    la c'est totalement different )))

    tu peux essayer ca alors :

    select * from matable where id< (select max(id) from matable);

    ca devrait marcher
    Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac)

  14. #14
    BuG
    BuG est déconnecté
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 44
    Points : 23
    Points
    23
    Par défaut ...
    Ca marche merci beaucoup !!

    Je n'ai peut être pas été clair je m'en excuse !

    Merci beaucoup @+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 60
    Dernier message: 22/09/2011, 08h25
  2. Recuperer les donnees d'une base de donnee sous forme de liste
    Par j-gat dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/11/2010, 03h45
  3. Réponses: 5
    Dernier message: 08/08/2007, 11h15
  4. recuperer les valeurs d une base de donnee
    Par caroen dans le forum JDBC
    Réponses: 7
    Dernier message: 09/02/2007, 10h14
  5. Recuperer les données d'une base via JDBC
    Par gloglo dans le forum JDBC
    Réponses: 2
    Dernier message: 02/10/2006, 11h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo