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 :

Signe % dans un LIKE avec une colonne SQL


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 419
    Par défaut Signe % dans un LIKE avec une colonne SQL
    Bonjour

    je suis en train de faire une requête SQL de migration de données(enfin de récupération de données) et j'ai un petit soucis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    SELECT D.Id_document, Liste_utilisateurs, Id_categorie
    FROM GED_diffusion_20080331_154140 D
    LEFT JOIN GED_diffusion_emargement DE
      ON DE.Id_document = D.Id_document
        AND DE.Type_categorie = 'utilisateurs'
    WHERE D.Id_document>0 
      AND D.Liste_utilisateurs IS NOT NULL 
      AND D.Liste_utilisateurs <>''
      AND D.Id_document = 11392
      AND Liste_utilisateurs NOT LIKE DE.Id_categorie
      AND Liste_utilisateurs NOT LIKE (DE.Id_categorie||',%')
      AND Liste_utilisateurs NOT LIKE ('%,'||DE.Id_categorie)
      AND Liste_utilisateurs NOT LIKE ('%,'||DE.Id_categorie||',%')
    Mes LIKE sont la parce que dans l'ancienne table, on avait un joli champ a virgules et que l'on a décidé de passer à quelque chose de plus utilisable.

    Il faut savoir que le but de cette requête est d'avoir tous les documents et leur liste d'utilisateurs qui ne sont pas déjà dans la nouvelle table(si les clients déjà migré ont déjà touché leurs données)

    Le problème est que le signe % que je veux utiliser comme dans un LIKE simple ne semble pas vouloir s'assembler avec une colonne mysql.


    Une idée de la syntaxe a faire ?

    (ca représente des centaines de milliers de lignes, d'ou mon envie de ne récupérer qu les données a insérer dans ma requète)

    Un distinct ou un group by est prévu dans cette requete pour n'avoir qu'une occurrence de la liste.


    Merci

    Pierre

  2. #2
    Membre chevronné Avatar de SphynXz
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 439
    Par défaut
    Code MySQL incorrect : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    AND Liste_utilisateurs NOT LIKE DE.Id_categorie

    ta pauvre base de donnée va souffrir avec ca

    là c'est un produit cartésien que cela va produire,

    exemple avec l'alphabet :

    il va comparer A avec les 26 lettres, puis B avec les 26 lettres...

    prefère une jointure à ce niveau là

  3. #3
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 419
    Par défaut
    on peut faire une jointure entre un champ contenant

    12,15,18,6,1,35

    et un champs contenant 15 ?

    au passage, c'est fait pour être exécuté une seule fois, donc si elle souffre beaucoup, mais qu'elle tient le coup, ça va...

  4. #4
    Membre chevronné Avatar de SphynXz
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 439
    Par défaut
    un champ contenant

    12,15,18,6,1,35
    ca dépend comment est faite ta table là!

    est ce une valeur par ligne ?

    genre :
    12
    15
    18
    6
    1
    35

    ou ces données sont réellement stocké dans un champ comme ceci :
    12,15,18,6,1,35

    ???

  5. #5
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 419
    Par défaut
    un champs a virgule...

  6. #6
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 419
    Par défaut
    je n'ai toujours aucune idée de solution, et de votre coté ?

    Concaténer la valeur d'une colonne et un caractère % est si bizarre que cela ?

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/07/2008, 17h04
  2. Réponses: 2
    Dernier message: 06/05/2008, 10h52
  3. compter avec une requete SQL dans VBA
    Par michael1971 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/01/2008, 09h20
  4. [SQL] Effacer des membres avec une colonne ayant pour valeur un numéro
    Par mecmec dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 20/01/2008, 07h55
  5. Réponses: 3
    Dernier message: 22/10/2006, 23h15

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