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

Installation MySQL Discussion :

WHERE champ in (select champ from...)


Sujet :

Installation MySQL

  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    821
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 821
    Par d�faut WHERE champ in (select champ from...)
    Bonjour

    Je r�ve ou sur mysql on ne peut pas faire comme sur Oracle par exemple
    une requete du genre

    update table set titi = 'toto' where id in (select id from table where....)



    merci!!!

  2. #2
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    8
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 8
    Par d�faut
    MySql sait g�rer les requetes imbriqu�es a partir de la version 4.1 je crois.
    Peut etre as tu une version plus ancienne ?

  3. #3
    R�dacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par d�faut
    Tu peux le faire � partir de la version 4.1 seulement.

    Sinon, tu peux certainement faire la m�me chose sans requ�te imbriqu�e, �ventuellement avec une jointure.
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pyd�velop

    Derniers articles:

    (SQL Server) Introduction � la gestion des droits
    (UML) Souplesse et modularit� gr�ce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  4. #4
    Membre �clair�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    821
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 821
    Par d�faut
    Effectivement, j'ai la version 4.0

    Si j'installe la version 5.0, j'�crase ma base?

    J'ai easyphp.

    Que dois-je installer et comment pour ne pas avoir � tout refaire?

    Merci


  5. #5
    Membre Expert
    Avatar de Adjanakis
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    739
    D�tails du profil
    Informations personnelles :
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2004
    Messages : 739
    Par d�faut
    Citation Envoy� par Garra
    Si j'installe la version 5.0, j'�crase ma base?
    non. il suffit de faire une sauvegarbe du r�pertoire data et de la transf�rerdans la nouvelle version de MySQL.

    sinon, tout n'est pas � refaire, mais j'ai oubli� la marche � suivre exacte.

  6. #6
    R�dacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par d�faut
    Tu peux sans doute faire la m�me chose sans requ�tes imbriqu�es, c'est quoi la requ�te que tu essayes de faire?
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pyd�velop

    Derniers articles:

    (SQL Server) Introduction � la gestion des droits
    (UML) Souplesse et modularit� gr�ce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  7. #7
    Membre �clair�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    821
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 821
    Par d�faut
    Ca y est! c'est fait et �a marche
    J'ai install� la version suivante de easyphp avec tout le tralala
    et la version 4.1 de mysql

    Mais pour info:
    il me semble impossible de faire un update du genre (c'est un exemple):

    udpate table1 set titi = toto where id in (select id from table2 where type = 'xxx')

    avec une jointure....., le update ne le permet pas
    (c'est bizarre que mysql ait mis autant de temps � s'adapter � une
    base comme oracle par exemple (celle que je pr�f�re))

    Merci � tous et chau chau chau


  8. #8
    R�dacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par d�faut
    Citation Envoy� par Garra
    Mais pour info:
    il me semble impossible de faire un update du genre (c'est un exemple):

    udpate table1 set titi = toto where id in (select id from table2 where type = 'xxx')

    avec une jointure....., le update ne le permet pas
    Ah oui? Et �a alors?:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    UPDATE table1 
    INNER JOIN table2
    ON (table1.id = table2.id)
     
    SET table1.titi = toto
    WHERE table2.type = 'xxx'
    Voir �galement:
    http://www.developpez.net/forums/viewtopic.php?t=423925
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pyd�velop

    Derniers articles:

    (SQL Server) Introduction � la gestion des droits
    (UML) Souplesse et modularit� gr�ce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  9. #9
    Membre �clair�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    821
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 821
    Par d�faut


    ah d'acc, �a n'existait pas "� mon �poque"


  10. #10
    Membre �clair�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    821
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 821
    Par d�faut
    Salut,

    En suivant tes conseils j'ai fait

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    UPDATE particule INNER JOIN particulegroupe ON ( particule.idNum = particulegroupe.idNum ) SET particule.dateAffichage = NOW( ) WHERE particule.idNum IN ( 2, 33, 32, 37, 11, 27, 29, 28, 14, 26, 45, 41, 48, 27, 40, 17, 45, 36, 26, 4, 1, 18, 30, 20, 31, 6, 38, 40, 2, 41, 27, 5, 25, 11, 43, 37, 38, 24, 16, 4, 2, 12, 45, 1, 40, 36, 18, 36, 24 ) AND particulegroupe.codeGroupe = 'FOND'
    mais �a ne marche pas
    Merci de m'aider!!

  11. #11
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par d�faut
    Quel message d'erreur ?

  12. #12
    Membre �clair�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    821
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 821
    Par d�faut
    Bonjour et merci

    D�s que j'enl�ve la condition

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    AND particulegroupe.codeGroupe = 'FOND'
    �a marche mais il me faut cette condition!!

    Merci

  13. #13
    Membre �clair�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    821
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 821
    Par d�faut
    En fait �a marche sur ma base local 4.1 mais le probl�me c'est que mon super hebergeur ne me mets � dispo que la version pr�c�dente de
    mysql et l�, �a ne marche pas!

    MySQL a r�pondu:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
     
    #1064 - You have an error in your SQL syntax near 'INNER  JOIN particulegroupe ON ( particule.idNum = particulegroupe.idNum )  SET ' at line 1
    C'est tout ce que j'ai comme erreur
    Merci

  14. #14
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par d�faut
    C'est quelle version exactement ? On dirait qu'il ne supporte pas les UPDATE multi-tables...

  15. #15
    R�dacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par d�faut
    J'ai peut-�tre une solution alternative:

    1) tu cr��s une table temporaire
    2) dans cette table temporaire, tu ins�res tous les enregistrements qui seront affect�s par le changement:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    INSERT INTO table_temporaire
    SELECT table1.*
    FROM table1
    INNER JOIN table2 ON ...
    WHERE ...
    3) tu fais ton UPDATE sur les enregistrements de ta table temporaire:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    UPDATE table_temporaire
    SET truc='bidulle'
    4) tu "commit" les changements dans la table de d�part
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    REPLACE INTO table1
    SELECT *
    FROM table_temporaire
    5) tu nettoyes ta table temporaire :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    TRUNCATE TABLE table_temporaire
    Du coup, plus de probl�me de version ou de syntaxe !
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pyd�velop

    Derniers articles:

    (SQL Server) Introduction � la gestion des droits
    (UML) Souplesse et modularit� gr�ce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  16. #16
    Membre �clair�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    821
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 821
    Par d�faut
    Oui, j'avais pens� � faire quelque chose comme
    cela mais c'est du bricolage insupportable.
    J'ai fait oracle pendant 15 ans, et je inner join
    n'�tait pas en tout cas � mon �poque, utilis�.

    T'en fais pas, je trouverais une solution plut�t c�t� m�moire (array)
    car peu de donn�es

    Merci!!!

  17. #17
    Membre exp�riment�
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par d�faut A l'attention de pcaboche
    Salut

    Je te remercie grace a ce topic j'ai trouv� la bonne syntaxe qui marche en effet


    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    UPDATE table1 
    INNER JOIN table2
    ON (table1.id = table2.id)
    SET table1.titi = toto
    WHERE table2.type = 'xxx'

Discussions similaires

  1. R�ponses: 7
    Dernier message: 22/05/2013, 08h44
  2. R�ponses: 2
    Dernier message: 27/01/2011, 16h42
  3. R�ponses: 15
    Dernier message: 27/01/2011, 11h00
  4. SELECT (champ issue d'un autre SELECT) FROM
    Par Fredovsky dans le forum Requ�tes
    R�ponses: 2
    Dernier message: 20/02/2010, 00h47
  5. R�ponses: 2
    Dernier message: 21/08/2008, 12h46

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