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 :

Prise en compte d'un espace en fin de chaîne dans SELECT


Sujet :

Requêtes MySQL

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 676
    Points : 131
    Points
    131
    Par défaut Prise en compte d'un espace en fin de chaîne dans SELECT
    Bonjour,

    Pour une recherche dans un champ varchar dans table MyISAM j'ai besoin de faire la différence entre une chaîne et la même chaîne suivi d'un espace.

    Or, avec cette requête.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $chaine = 'xxx'
    $chaine_avec_espace_à_la_fin = 'xxx '
     
    SELECT * FROM ma_table WHERE ref='xxx '
    J'espère ne voir aucun résultat car 'xxx ' n'est pas dans la base.
    Mais ma base retourne la ligne correspondant à 'xxx'

    Quelle requête permet de tenir compte de l'espace à la fin ?

  2. #2
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut boteha.

    Dans une table, vous avez une chaîne de caractères qui ne se termine pas avec plusieurs espaces.
    Si vous tapez "select * from matable where ref='xxx';, il y aura correspondance.

    Si vous écrivez "select * from matable where ref='xxx ';, MySql va ignorer les espaces mis dans la chaîne de votre requête.
    S'il y a correspondance entre 'xxx' de votre requête et 'xxx' dans la table alors votre résultat va s'afficher.

    Or vous désirez faire la distinction entre ces deux cas. Comment faire ?
    En utilisant le 'like' : http://dev.mysql.com/doc/refman/5.7/...-matching.html

    Si vous écrivez "select * from matable where ref like 'xxx ';, MySql va rechercher l'exacte correspondance dans la table.
    Et dans ce cas là, comme la chaîne 'xxx ' n'existe pas dans la table, la requête ne vous retourne rien du tout.

    Je vous conseille de lire la documentation sur l'usage de ce 'like', avec les caractères '%' et '_'.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 676
    Points : 131
    Points
    131
    Par défaut
    Bonjour,

    Merci de ta réponse.

    Je connais l'emploi de LIKE avec % et _ mais je ne savais pas qu'il peut aussi remplacer un = avec prise en compte des espaces.
    On peut d'ailleurs penser que l'inverse aurait été plus logique : = pour équivalence absolue et LIKE pour équivalence avec espaces.
    Mais tu m'as donné la solution.

    Je peux cocher Résolu, encore merci.

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

Discussions similaires

  1. Compter les espaces de fin de chaîne.
    Par lah.123 dans le forum Cobol
    Réponses: 1
    Dernier message: 12/01/2010, 17h09
  2. [Date dans Mysql] Prise en compte des espaces
    Par tchoukapi dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 02/01/2006, 03h41
  3. Réponses: 17
    Dernier message: 18/03/2005, 09h23
  4. Prise en compte des contraintes
    Par potanie dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 05/11/2004, 10h00
  5. [MFC]: prise en compte du clavier
    Par ben_iap dans le forum MFC
    Réponses: 8
    Dernier message: 20/01/2004, 15h00

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