HELP ! pour un LIKE '%mot1%mot2%mot3 ........'

cs_vladam Messages postés 216 Date d'inscription dimanche 13 janvier 2002 Statut Modérateur Dernière intervention 7 novembre 2009 - 7 mai 2005 à 17:34
cs_vladam Messages postés 216 Date d'inscription dimanche 13 janvier 2002 Statut Modérateur Dernière intervention 7 novembre 2009 - 10 mai 2005 à 12:31
Bonjour,

J'ai une problématique aigue ! Je dois faire une recherche en UNE requête SQL (si possible) ...

En faite il faut l'équivalent à une clause LIKE '%mot1%mot2%mot3'

Mais je dois effectuer cette recherche en ne tenant pas compte de l'ordre des mots ...

Vous voyez une possibilité ? y a t il un paramètre qui permette à SQLServer d'effectuer cette recherche sans tenir compte de l'ordre des mots dans le champs ?

vladam
(pour vous servir :) )

7 réponses

cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
7 mai 2005 à 19:21
Salut


Pourquoi pas :


"SELECT * FROM TaTable WHERE ( Tonchamp LIKE '%mot1%' OR Tonchamp LIKE '%mot2%' OR Tomchamp LIKE '%mot3%' )"

(j'ai pas vérifié mais c'est un truc dans ce genre là...)
si il faut va voir sur SQLFr......ils sont censé mieux s'y connaitre qu'ici...

@+++

Nurgle
C'est une grande folie que de vouloir être sage tout seul !
0
cs_vladam Messages postés 216 Date d'inscription dimanche 13 janvier 2002 Statut Modérateur Dernière intervention 7 novembre 2009
7 mai 2005 à 19:29
POUAAAAAA !!!! c'est évident en plus !

Il va faloir que je dorme un peu, car là ! c'est grave !

*note : ne plus programmer 20h/24 *

Merci Nurgle

vladam
(pour vous servir :) )
0
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
7 mai 2005 à 20:12
t'emballe pas trop vite, je viens de tester et ça a pas marché !! (peut être que j'ai mal testé, moi aussi je suis fatigué...)

ça je suis sûr que ça marche (et que ça prend uniquement des valeurs distinctes...):

"SELECT * FROM Tatable WHERE unchamp LIKE '%mot1%' UNION SELECT * FROM Tatable WHERE unchamp LIKE '%mot2%' UNION SELECT * FROM Tatable WHERE unchamp LIKE '%mot3%'"

(choisit la manière que tu veux, tant que ça fonctionne...)

Nurgle
C'est une grande folie que de vouloir être sage tout seul !

Nurgle
C'est une grande folie que de vouloir être sage tout seul !
0
cs_vladam Messages postés 216 Date d'inscription dimanche 13 janvier 2002 Statut Modérateur Dernière intervention 7 novembre 2009
8 mai 2005 à 08:29
c'est bon, j'ai trouvé ...


Pas en une seule requête mais au top !

En faite, j'ai fais un composant me permettant d'indexer mes champs comme
le fait SQL Server.
Je vais finaliser ce composant et je vais le mettre ici, j'utilise une technique
d'analyse sémantique. c'est un peut long à programmer, mais au final,
le résultat est super fiable, et avec un indice de cohérence (taux) en sortie.
Je vais ajouter un correcteur de saisie.
Ce composant servira, je pense, a ceux comme moi, dont l'hébergeur ne veut
pas créer de catalogue (pour SQLServer 2000 et MySQL 4.XX
Je vais faire les tests sur mon site de e-commerce et j'ajoute les sources
du composant ici.

Je me remets au travail :-) *la sémantique, c'est super intéressant*

vladam
(pour vous servir :) )
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nicolas_kojack Messages postés 136 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 25 mai 2012
10 mai 2005 à 11:54
tu as testé avec
'"& mot1 &"' au lieu de '%mot1%'
0
Nicolas_kojack Messages postés 136 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 25 mai 2012
10 mai 2005 à 11:55
ha oui et aussi des fois il faut remmettre tout a niveau avec un ucase pour que cela fonctionne bien
0
cs_vladam Messages postés 216 Date d'inscription dimanche 13 janvier 2002 Statut Modérateur Dernière intervention 7 novembre 2009
10 mai 2005 à 12:31
Merci pour ces conseils :-)
Comme le moteur de recherche est une chose primordial pour mon site, j'ai développé un composant, à la final :-) (j'ai plus de 10 000 références sur http://www.euros-laser.com
Chaque nuit, je réalise une indexation de tous les mots (sauf ceux en liste noir), en utilisant un algo spécifique qui me permet ensuite, d'obtenir le résultat des recherches beaucoup plus rapidement ! ce composant me permet entre autre d'afficher le résultat suivant le taux de cohérence des enregistrements (une sorte de notation calculée comme le PageRank).
c'est vraiment très puissant ! et sous forme de composant, je peux le réutiliser à loisir pour mes autres sites :-)

vladam
(pour vous servir :) )
0
Rejoignez-nous