[SQL] Cherche la bonne instruction

Fermé
11laurent11 Messages postés 31 Date d'inscription dimanche 12 novembre 2006 Statut Membre Dernière intervention 9 juillet 2017 - 6 févr. 2007 à 08:57
 takman - 18 août 2008 à 02:19
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 26500 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 2 décembre 2024 3 317
6 févr. 2007 à 10:51
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
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 434 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 15 décembre 2008 387
6 févr. 2007 à 13:55
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
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