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 :

Besoin d'une fonction équivalente à "contenir dans"


Sujet :

Langage SQL

  1. #1
    Membre confirmé Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Par défaut Besoin d'une fonction équivalente à "contenir dans"
    Bonjour à tous,
    j'aurais besoin d'une fonction capable de récupérer un fichier suivant un mot déterminé.

    Par exemple, si le mot déterminé est "évaporateur" et que le nom de mon fichier est "lavage évaporateur" il faudrait que je puisse récupérer ce fichier.

    Existe t-il donc une fonction capable d'effectuer ceci ?

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    un 'like' ?

  3. #3
    Membre confirmé Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Par défaut
    Citation Envoyé par Cybher
    un 'like' ?
    C'est bien possible, je ne connais pas les fonctions capable d'éxécuter ce que je désire. Voila la requête sur laquelle je souhaite agir. Au lieu d'avoir type_instal strictement = à $fichier il me faudrait type_instal contenu dans $fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $req = "SELECT id_instal FROM nomination WHERE type_instal = '".$fichier."'";
     
    			$result = mysql_query($req);
    			$valeur4 = mysql_fetch_array($result);

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Lisez les tutoriels de base du langage SQL, ils sont très bien faits.

  5. #5
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    Citation Envoyé par yohan0262
    C'est bien possible, je ne connais pas les fonctions capable d'éxécuter ce que je désire. Voila la requête sur laquelle je souhaite agir. Au lieu d'avoir type_instal strictement = à $fichier il me faudrait type_instal contenu dans $fichier :
    et bien fais une petite recherche sur le like
    tu devrais trouver ca dans le tutoriel proposé par Magnus

  6. #6
    Membre confirmé Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Par défaut
    Citation Envoyé par Cybher
    et bien fais une petite recherche sur le like
    tu devrais trouver ca dans le tutoriel proposé par Magnus
    Oui je suis entrain de le consulter justement. Le ILIKE serait même encore plus satisfaisant puisqu'il est insensible à la casse.

    Néanmoins si vous connaissez une fonction bien définis, n'hésitez pas à m'en faire part. =)

  7. #7
    Membre confirmé Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Par défaut
    Citation Envoyé par yohan0262
    Oui je suis entrain de le consulter justement. Le ILIKE serait même encore plus satisfaisant puisqu'il est insensible à la casse.

    Néanmoins si vous connaissez une fonction bien définis, n'hésitez pas à m'en faire part. =)
    J'ai parlé trop vite le ILIKE n'est pas compatible avec mysql.

  8. #8
    Membre confirmé Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Par défaut
    J'utilise easyphp 1.8 et apache 1.3.33. Pour la base de donnée j'utilise PhpMyadmin.
    J'ai testé cette requête qui aurait dut me renvoyer l'id correspondant au type_instal (ici évaporateur comme le nom du fichier l'indique) mais ca ne marche pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT id_instal FROM nomination WHERE type_instal LIKE 'DL MA U44 CO Evaporateur EA (fr) (Ed 1).PDF'
    Quelqu'un a t-il une idée ?

  9. #9
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    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 139
    Par défaut
    Citation Envoyé par yohan0262
    Quelqu'un a t-il une idée ?
    Lisez la définition de l'opérateur LIKE
    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.

  10. #10
    Membre confirmé Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Par défaut
    Est ce que pour effectuer la comparaison avec l'opérateur Like, les deux chaînes doivent être strictement identique. C'est à dire que "lavage évaporateur" sera t'il comparer à évaporateur ???

    aidé moi svp

    Pourquoi mes précédents messages ont_ils étaient éffacé ?

  11. #11
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    si tu regarde bien le cours SQL, tu verra de joli '%' se balader dans la requête... Peut etre que c'est utile

  12. #12
    Membre confirmé Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Par défaut
    Citation Envoyé par Cybher
    si tu regarde bien le cours SQL, tu verra de joli '%' se balader dans la requête... Peut etre que c'est utile
    Ben justement non !
    J'ai eut tant bien que mal à trouver la fonction adéquat à ce que je souhaitais réaliser, le like n'étant pas la bonne solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    $req = "SELECT id_instal FROM nomination WHERE 0 < (SELECT INSTR('".$fichier."', type_instal) FROM nomination)";
    Mais il y a toujours une petite erreur... "subquery return more than 1 row"
    Je vais de ce pas créer une discution plus apte au sujet !

  13. #13
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    Citation Envoyé par yohan0262
    Ben justement non !
    Bah moi je dirais si

    Alors je lis la doc : http://sql.developpez.com/sqlaz/select/#L3.4
    et je vois ceci :
    L'opérateur LIKE permet d’effectuer une comparaison partielle. Il est surtout employé avec les colonnes contenant des données de type alpha. Il utilise les jokers % et _ (‘pour cent’ et ‘blanc souligné’). Le joker % remplace n'importe quelle chaîne de caractères, y compris la chaîne vide. Le blanc souligné remplace un et un seul caractère.
    Alors en mettant ce joker comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id_instal FROM nomination WHERE type_instal LIKE '%Evaporateur%'
    tu n'obtiens pas ce que tu cherches?

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 09/11/2009, 20h56
  2. Réponses: 3
    Dernier message: 20/04/2008, 22h06
  3. Réponses: 1
    Dernier message: 14/10/2005, 16h36
  4. Réponses: 4
    Dernier message: 02/06/2004, 17h35

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