[SQL] Cherche la bonne instruction

11laurent11 Messages postés 31 Statut Membre -  
 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
A voir également:

4 réponses

blux Messages postés 27987 Date d'inscription   Statut Modérateur Dernière intervention   3 367
 
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)
0
Laurent
 
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
0
GallyNet Messages postés 437 Statut Membre 387
 
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.
0
takman
 
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 + '%'
0