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 :

fonctions de chaine dans un WHERE


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    219
    Détails du profil
    Informations personnelles :
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2005
    Messages : 219
    Par défaut fonctions de chaine dans un WHERE
    Bonjour,

    Il ne semble apparemment pas possible d'utiliser les fonctions de chaine dans le WHERE.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT nom WHERE REPLACE(nom , '-', ' ') IN ('jean louis','fred','paul-henri');
    même en utilisant un alias pour la colonne.

    Il n'est donc pas possible d'effectuer des recherches sur des colonnes modifiées à la volée ?
    Mon but étant de pouvoir supprimer certains caractères à la comparaison (les accents et les tirets), tout en affichant ce qu'il a réellement été entré (donc pas de modif lors de l'insert) et - le problème est là - en utilisant IN("liste de valeurs"). Comme dans mon exemple ci-dessus.

    Merci.

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 065
    Par défaut
    Bonjour,

    C'est certainement un oubli de ta part dans ton exemple, mais il faut une clause FROM .
    Sinon, je viens de tester sous MySQL 5.1 et c'est tout-à-fait possible.

    Si tu nous en disais un peu plus sur l'erreur qui est éventuellement retournée par ta requête ?

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    219
    Détails du profil
    Informations personnelles :
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2005
    Messages : 219
    Par défaut
    Ah ben euh... oui ça marche
    Du coup, pour pas avoir ouvert un fil pour rien, est-ce qu'il est possible de remplacer plusieurs caractères en une passe ? Les regexp servent uniquement pour la comparaison...
    Si je veux donc remplacer tous les accents courants, il me faut une dizaine de REPLACE imbriqués !

Discussions similaires

  1. [AC-2007] Début de chaine dans clause where
    Par jchuillier dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 31/10/2012, 15h10
  2. [Sql Server] Fonction de recherche dans une chaine
    Par pierre031183 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/01/2011, 16h16
  3. Réponses: 3
    Dernier message: 08/08/2006, 15h15
  4. Comparaison de chaine dans la clause WHERE
    Par oceanbigone dans le forum Requêtes
    Réponses: 3
    Dernier message: 31/07/2006, 09h28
  5. Réponses: 15
    Dernier message: 26/03/2006, 12h10

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