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 :

Requête MYSQL LIKE particulière [Tutoriel]


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 38
    Points : 37
    Points
    37
    Par défaut Requête MYSQL LIKE particulière
    Salut,


    Voilà, je suis entrain de developper un annuaire, avec des sites multi-catégories,

    Par ex : le code sql pour un site est Et ma requête est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE sub LIKE "%\,'. $dir .'\,%"

    Le seul prob est, pas vraiment gênant mais pour un "soucis de clareté", que si je n'ai que j'ai forcément une virgule au début et à la fin du champ mysql.



    Svp, pouvez-vous m'aider ?

  2. #2
    Membre régulier Avatar de zamanika
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 106
    Points : 102
    Points
    102
    Par défaut
    Salut,

    Je comprends pas bien

    En fait tu as une variable qui peut prendre les valeurs $dir=,1,2,3,4, ou $dir=1,2,3,4 ?

    Et tu voudrais qu'elle soit toujours égale à $dir=1,2,3,4 pour plus de clarté ?

    Dans ce cas tu peux chercher et supprimer les virgules en trop en utilisant les fonctions substr() et strlen().
    Ca doit aussi être possible en utilisant un preg_replace(); mais je crois que c'est un peu plus lent.

  3. #3
    Membre habitué Avatar de nantais
    Inscrit en
    Juillet 2004
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 158
    Points : 192
    Points
    192
    Par défaut
    Si tu n'es pas sur tu codes de la soret :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    WHERE sub LIKE "%\,'. $dir .'\,%"
    OR sub LIKE "\'. $dir .'\,%"
    OR sub LIKE "%\,'. $dir .'\"
    Car si tu n'as par de virgule avant, si j'ai bien compris, c'est que c'est un début de champ. Donc pas de % en début de champ.

    Et si pas de virgule après, fin de champ....

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 38
    Points : 37
    Points
    37
    Par défaut
    Voila merci, c'était bien ça avec les requête MySql ...

  5. #5
    Membre habitué Avatar de nantais
    Inscrit en
    Juillet 2004
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 158
    Points : 192
    Points
    192
    Par défaut
    Si ca répond bien à ton pb, tu peux mettre le tag [RESOLU]

    @+

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 38
    Points : 37
    Points
    37
    Par défaut
    En utilisant les expressions régulières, est-il possible de n'utiliser qu'une seule commande au lieu de 3 ?

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 38
    Points : 37
    Points
    37
    Par défaut
    Il y'avait une erreur dans ton code,

    c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    WHERE sub LIKE "%\,'. $dir .'\,%" 
    OR sub LIKE "\\'. $dir .'\,%" 
    OR sub LIKE "%\,'. $dir .'\\"
    * Il y'avait \ au lieu de \\ pour les deux derniers ...


    @+

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 38
    Points : 37
    Points
    37
    Par défaut
    Bon, les expressions régulières c'est nouveau pour moi, mais j'ai reussi à faire ça en lisant la doc (pour ceux qui voudrait savoir la réponse ...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    REGEXP "(^|,)'.$dir.'(,|$)"';

  9. #9
    Membre régulier Avatar de zamanika
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 106
    Points : 102
    Points
    102
    Par défaut
    ben ça, je viens d'apprendre quelque chose !!!

    J'ignorai que l'on pouvait inclure des regexp directement dans les requêtes mysql

    Est-ce que quelq'un-e sait si c'est plus rapide que les traiter dans php ???

    En tout cas merci TheDarkLewis

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 38
    Points : 37
    Points
    37
    Par défaut
    De rien, et ça ma l'air plus rapique que 3 "sous requêtes" ...

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

Discussions similaires

  1. Like dans requête Mysql
    Par toutoune95800 dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 15/06/2013, 09h54
  2. Requète MySQL >> Postgresql
    Par genova dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 19/08/2005, 09h05
  3. Arrêt de l'exécution d'une requête MySQL dans DELPHI.
    Par joelmarc dans le forum Bases de données
    Réponses: 9
    Dernier message: 11/10/2004, 16h11
  4. surcharge de requête MySQL
    Par simoryl dans le forum Requêtes
    Réponses: 4
    Dernier message: 15/06/2004, 10h43
  5. requête mysql sous php
    Par remi59 dans le forum Débuter
    Réponses: 9
    Dernier message: 03/07/2003, 10h39

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