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

Requêtes MySQL Discussion :

[MySQL] INSERT ou UPDATE pour un grand nombre d'enregistrements


Sujet :

Requêtes MySQL

  1. #1
    Nouveau candidat au Club
    Inscrit en
    Décembre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 2
    Par défaut [MySQL] INSERT ou UPDATE pour un grand nombre d'enregistrements
    Bonjour,

    Je suis face a un petit prblème, je dois mettre a jour un tableau avec potentiellement un tres grand nombre de données, du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE ev_presence SET ev_presence = "0" WHERE ((ev_event_id = 1) AND ((ev_client_id = 276) OR (ev_client_id = 162) OR (ev_client_id = 88) OR (ev_client_id = 137) OR (ev_client_id = 268) OR (ev_client_id = 59) OR (ev_client_id = 113) OR (ev_client_id = 292) OR (ev_client_id = 165) OR (ev_client_id = 153) OR (ev_client_id = 16) OR (ev_client_id = 79) OR (ev_client_id = 77) OR (ev_client_id = 290) OR (ev_client_id = 102) OR (ev_client_id = 259) OR (ev_client_id = 190) OR (ev_client_id = 122) OR (ev_client_id = 138) OR (ev_client_id = 139) OR (ev_client_id = 226) OR (ev_client_id = 218) OR (ev_client_id = 163) OR (ev_client_id = 257)))
    Et ça c'est qu'une partie...

    l'ennui c'est que tous les ev_client_id que j'aimerai mettre a jour ne sont pas forcement dans cette table, dans le cas ou il n'y sont pas j'aimerai les 'ajouter.

    Je connais la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO table (cle,blabla) VALUES (1337,'truc') ON DUPLICATE KEY UPDATE blabla='truc';
    C'est pratique quand on a pqs bcp de champs a mettre a jour, mais dans mon cas je suis coincé...
    Je ne peux pas faire une requete par ev_client_id, vu qu'il y en a potentiellement quelques centaines...

    Si quelqu'un a une idée, je suis prenneur ^^

  2. #2
    Nouveau candidat au Club
    Inscrit en
    Décembre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 2
    Par défaut
    J'ai toujours pas trouvé la solution en mysql par contre en php je suis arrivé a un "paliatif" :

    Je doute que ca serve a quelqu'un, mais qui sait :
    Je recupere toutes mes donnes a ajouter dans le tableau $ARRAY
    Quand je specifie // UPDATE je concatene les valeurs a une grande requete update.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    $SQL = 'SELECT * FROM ev_presence';
    $REQ = mysql_query($SQL) or die('Erreur SQL !'.$SQL.'<br>'.mysql_error());
     
      while ($data = mysql_fetch_array($REQ))
      { 
          $presence[$data['ev_client_id']] = $data['ev_presence'];
      }
     
    	foreach ($ARRAY as $key => $value)
    	{
    		// On verifie si le user est deja dans la table
    		if (isset($presence[$key]))
    		{
                                   // UPDATE
    		}
    		// Si il est pas encore dans la base :
    		else 
    		{
    		     // INSERT	
                              }
    	}
    Bien sur c'est tout bête, mais ca m'aiderai beaucoup si quelqu'un avait une solution purement mysql, je ne vais donc pas encore mettre resolu tout de suite

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/09/2011, 02h08
  2. [SQL] Optimisation pour un grand nombre d'insertions
    Par ddelec24 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 30/08/2007, 14h33
  3. Macro Solver pour un grand nombre de ligne
    Par hochimi dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/07/2007, 23h20
  4. Réponses: 7
    Dernier message: 10/05/2007, 16h24
  5. insert ou update pour raffraichir les données
    Par laurent.w dans le forum Access
    Réponses: 4
    Dernier message: 23/01/2007, 09h45

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