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 :

passage code mysql 5.0 vers mysql 4.0


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Par défaut passage code mysql 5.0 vers mysql 4.0
    Bonjour,

    Il va sans doute falloir que je passe mon code mysql 5.0 vers mysql 4.0.
    Voici mon code actuel tapé avec l'instruction NOT EXISTS apparu en version mysql 4.1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select * from publicite where etat='ACTIF' and ((aff<quantite and 
    type='cpm') or (clic<quantite and type='clic') or type='regie') and NOT 
    EXISTS (select * from cpmban where cpmban.idpub=publicite.idpub and 
    datevue=CURDATE() and ip='45.52.76.85') order by rand() limit 1
    celui-ci contient une insctruction NOT EXISTS qui n'existe pas en mysql 4.0
    comment puis-je remplacer le NOT EXISTS pour arriver au même résultat

    Enfin le second problème est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    insert into statspub values 
    ('12','2008','0','1','0','10') ON DUPLICATE KEY update 
    aff=aff+1";
    ce code très performant permet de faire un INSERT qui en cas de doublon sur
    la clé fait un update (depuis la version mysql 4.1 tout comme les requêtes
    imbriquées)

  2. #2
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Par défaut
    Personne ne sait ici comment on faisait avant que le NOT EXISTS et le ON DUPLICATE KEY n'apparaisse dans la version mysql 4.1
    J'ai la version mysql 4.0 et j'utilise ces codes NOT EXISTS et ON DUPLICATE KEY et je ne trouve personne qui sache comment remplacer ces codes

  3. #3
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 288
    Par défaut
    Pourrais-tu présenter simplement ton SQL à migrer (sans le noyer dans du PHP), conformément aux règles de ce forum http://www.developpez.net/forums/showthread.php?t=35830 ?

  4. #4
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Par défaut
    Je viens de modifier mon explication afin d'être conforme au forum mysql
    Merci de votre aide

  5. #5
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Saluton,
    Pour la première requête une jointure externe LEFT JOIN entre les 2 tables et un test IS NULL sur une colonne de la table cpmban dans la clause WHERE.

    Pour l'autre, je ne vois pas.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  6. #6
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Par défaut
    j'ai essayé avec LEFT JOIN et celà ne marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select * from publicite LEFT JOIN visitemembre ON 
    publicite.idpub=visitemembre.id where publicite.etat='ACTIF' and publicite.type='clicforce' and publicite.clic<publicite.quantite and (visitemembre.id is null or 
    (visitemembre.datevisite!=CURDATE() and visitemembre.ip='87.91.176.230')) GROUP BY publicite.idpub
    A noter que ce code ci-dessus est faux car je ne comprends pas du tout comment je peux arriver au résultat voulu avec LEFT JOIN.
    Ici l'idée c'est d'afficher toutes les publicités qui n'ont pas présentes dans la table visitemembre qui contient toutes les publicités vues par des internautes avec la date et l'IP. VISITEMEMBRE contient donc l'IP, la date de visite et l'ID de la table publicite
    Donc maintenant je veux juste afficher l'ensemble des publicités pour lesquels on ne trouve pas de lignes correspondantes dans la table VISITEMEMBRE pour l'id de la table publicite, l'ip récupéré avec php et la date du jour soit CURDATE()
    Si on ne trouve pas de lignes avec ces paramètres pour une publicité celà veut dire obligatoirement que la publicité en question n'a pas été vue aujourd'hui par cette IP et c'est bien là l'objectif de ma requete.

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

Discussions similaires

  1. Extraction des données du PDF vers MySql : code Java
    Par Colonel-Essaid dans le forum Général Java
    Réponses: 1
    Dernier message: 08/04/2011, 14h37
  2. Correspondance code CR de ACCESS vers MySQL
    Par bruce207 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 06/08/2008, 12h05
  3. Migration BDD de Mysql 4.1 vers Mysql 5.0
    Par SALISTASE dans le forum Outils
    Réponses: 1
    Dernier message: 07/05/2008, 10h00
  4. Migration mysql-server 4 vers mysql-server 5
    Par lamienois dans le forum Requêtes
    Réponses: 2
    Dernier message: 04/03/2008, 17h01
  5. [MySQL] Besoin d'un œil externe pour vérifier mon code (envoi données vers mysql)
    Par cuisto44000 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 13/12/2007, 14h48

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