Sql like %select

Bonsoir,

je cherche une solution pour faire en sorte que la requete suivante fonctionne :

select champs1, champs2 from table 1 where
champs2 like ‘%(select champs3 from table2)%’

ou

select champs1, champs2 from table 1 where
champs2 in (select champs3 from table2) : la ça marche mais il faut que champs2 = champs3 et non que champs2 like ‘%champs3%’

Je me casse la tete depuis un moment et je n’y arrive pas.

Le but c’est de faire une recherche automatique d’un bout de texte dans un champs contenant une phrase. la table2 correspond à une table de mots clés.

Merci de votre aide.

Salut,

Quel SGBD utilises-tu ?

-> MySQL 5.0.27

Avec la fonction concat, tu peux t’en sortir:


select t1.champs1, t1.champs2 from table1 t1, table2 t2 where
champs2 like CONCAT('%',t2.champs3,'%')

CONCAT, ou sa version ANSI SQL : ‘%’ || t2.champs3 || ‘%’ que mySQL devrait confondre avec l’opérateur OU du C.

Merci la solution était devant moi mais je ne pouvais pas la voir.

Merci de votre aide.

tu peux utiliser celle la:

select T1.champs1, T1.champs2 from table1 T1, table2 T2 where
T1.champs2 like ( ‘%’ || T2.champs3 ||’%’)

je pense que c’est plus facile

Tu répètes ce qu’a dit Sans-Nom dans son dernier post.

Désolé je ne l’ai pas Vu
je voulais te donner un coup de main mais apparrement c’est déja fais par Sans-Nom