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

Langage SQL Discussion :

contient un caractère


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Inscrit en
    Novembre 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 10
    Par défaut contient un caractère
    Hello,

    J'aimerai obtenir la liste des valeurs contenant le caractère "_"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM `articles`
    WHERE id LIKE '%_%'
    Malheureusement, ma requête me retourne TOUS les résultats, dont ceux qui ne contiennent pas le caractères "_".

    Merci

    edit : c'est le caractère qui semble poser problème, avec une autre valeur ça marche mais ce n'est pas le résultat voulu.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    Bonjour,

    Il faudrait préciser votre SGBD car le problème vient de lui.

  3. #3
    Membre habitué
    Inscrit en
    Novembre 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 10
    Par défaut
    Bonjour,

    J'ai essayé la requête avec MySQL et avec Open Office Base, et j'ai obtenu exactement le même résultat

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    Bonjour,

    Sous MySQL le caractère "_" est un caractère joker qui remplace un caractère quelconque.

    Vous pouvez essayer la syntaxe suivante qui devrait fonctionner :
    ou encore :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    LIKE "%X_%" ESCAPE "X"
    ici remplacer le "X" par le caractère que vous voulez.

    http://dev.mysql.com/doc/refman/5.0/...functions.html

    Pour OpenOffice je ne sais pas, regardez dans la doc de celui-ci.

  5. #5
    Membre habitué
    Inscrit en
    Novembre 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 10
    Par défaut
    LIKE '%X_%' ESCAPE 'X'
    me donne aucun résultat

    LIKE '%X_%' ESCAPE 'X'
    me donne tous les résultats

    LIKE '%\_%'
    me donne aucun résultat

    NOT LIKE '%\_%'
    me donne tous les résultats

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    Êtes-vous en Mysql version 5 ou supérieur ?

    Et si c'est le cas, avez-vous vraiment des chaînes (id) avec ce caractère spécifique ?
    Là vous testez le champs "Id" est-ce bien le champ souhaitez ?

  7. #7
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Un Id (identifiant, clé primaire d'une table ou clé étrangère dans une autre) est, pour plus d'efficacité, un entier auto-incrémenté.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  8. #8
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 132
    Par défaut
    Pourquoi se focaliser sur LIKE ?
    Il y a d'autres manières de rechercher une sous-chaine dans une chaine

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM    articles
    WHERE   POSITION('_' INTO id) > 0
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  9. #9
    Membre habitué
    Inscrit en
    Novembre 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 10
    Par défaut
    al1_24 tu es un génie !!
    Sous Open Office Base,
    avec "POSITION ( '_' IN ID )
    ça fonctionne!

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

Discussions similaires

  1. Verifier qu'un champ ne contient aucun caractère spécial
    Par aemilia26 dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 23/02/2010, 11h19
  2. Réponses: 1
    Dernier message: 28/05/2008, 11h52
  3. Vérifier si une chaine contient des caractères spéciaux
    Par BenoitDenis dans le forum Langage
    Réponses: 4
    Dernier message: 05/07/2006, 16h26
  4. parametre de formulaire dont la valeur contient de caractères spéciaux
    Par jakouz dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 26/04/2006, 14h29
  5. [XSLT]Testez si le champ contient un caractère
    Par totoen dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 14/12/2005, 15h47

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