[SQL] Cherche la bonne instruction
11laurent11
Messages postés
31
Statut
Membre
-
takman -
takman -
Bonjour,
Je cherche à effectuer une opération assez basique en SQL mais je ne trouve pas la bonne commande pour y arriver.
J'ai par exemple une table contenant des articles, par exemple des fruits (pomme, poire, cerise, ananas, citron). Je voudrais avec un SELECT prendre le fruit qui se trouve dans une chaine de caractères données:
SELECT fruit from base de données WHERE fruit ... 'j'aime les poires en été'
A la place des ... j'avais pensé utilisé un LIKE mais ça ne marche pas. La requête doit rechercher la présence du contenu de la colonne fruit dans la chaine de caractères que je lui envoie. Ca me paraissait pourtant simple mais je n'y arrive pas.
Vous avez une idée ?
Merci
Laurent
Je cherche à effectuer une opération assez basique en SQL mais je ne trouve pas la bonne commande pour y arriver.
J'ai par exemple une table contenant des articles, par exemple des fruits (pomme, poire, cerise, ananas, citron). Je voudrais avec un SELECT prendre le fruit qui se trouve dans une chaine de caractères données:
SELECT fruit from base de données WHERE fruit ... 'j'aime les poires en été'
A la place des ... j'avais pensé utilisé un LIKE mais ça ne marche pas. La requête doit rechercher la présence du contenu de la colonne fruit dans la chaine de caractères que je lui envoie. Ca me paraissait pourtant simple mais je n'y arrive pas.
Vous avez une idée ?
Merci
Laurent
Configuration: Windows XP Firefox 2.0
4 réponses
-
Salut,
tout dépend ton SQL...
La plupart ont des fonctions de chaines de caractères (dont la recherche d'une chaine dans une autre).
Sous ACCESS (fonctions VBA), ça pourrait donner :WHERE InStr('j'aime les poires en hiver',fruit) -
Super merci, je n'ai pas réussi à utiliser INSTR mais ça m'a mis sur la piste pour trouver une solution. L'instruction que j'ai utilisée est la suivante:
SELECT * FROM matable where POSITION (XX IN YY)>0
Si la chaine XX est trouvée dans YY, la position sera au moins de 1 d'où l'utilisation du >0 -
Tu utilise Mysql ? Dans ce cas essaye donc de faire cela :
SELECT fruit FROM base de données WHERE 'j'aime les poires en été' REGEXP fruit;
L'utilisation des expression régulière marchera dans lapluaprts des cas, mais il risque d'y avoir quelque problème si "fruit" contient certain caratère spéciaux. -
Bonjour,
L'erreur dans ta requête SQL est que t'as un quote simple (apostrophe) dans le texte suivant le LIKE, d'autre part tu dois inverser les deux opérandes du LIKE.
la bonne écriture serait le suivante :
SELECT fruit from table_des_fruits WHERE 'j''aime les poires en été' LIKE '%' + fruit + '%'