un truc comme like en SQL ...

un truc comme like en SQL ... - Programmation

Marsh Posté le 10-05-2001 à 12:35:45    

Bonjour,
 
y'a-t-il un moyen de rechercher dans une base de données un champ texte à l'orthographe approché d'un certain mot.
 
Je ne veux pas utiliser le LIKE du SQL car il permet de rechercher une certaine chaine dans une autre (commençant, terminant ou incluse dans une chaine).  
 
merci

Reply

Marsh Posté le 10-05-2001 à 12:35:45   

Reply

Marsh Posté le 10-05-2001 à 13:04:55    

Bah sous Oracle, y'a un truc qui y ressemble...
Mais bon...
 
1) C'est pas dans la norme, donc tu es quasi-certain de pas retrouver la fonction sur un autre SGDB-R (du moins avec la même syntaxe)
 
2) C'est spécial anglais et ça marche pas bien avec le français...
 
Voici un extrait de mon cours Oracle :
 
SOUNDEX (chaîne)
Cette fonction calcule une valeur phonétique qui peut être comparée dans un prédicat à la valeur phonétique d'une autre chaîne.
 
Exemple :  

Code :
  1. SELECT nom FROM e_emp
  2. WHERE SOUNDEX(nom) = SOUNDEX('SCHMIDT');
  3. NOM
  4. ___________________________
  5. SMITH
  6. 1 row selected.

Reply

Marsh Posté le 10-05-2001 à 16:57:14    

merci de ton aide
la base est sous SQL server donc y'a pas moyen, tant pis. C'était pour un petit moteur de recherche, celui qui tapera un critère n'aura qu'à pas se planter dans l'orthographe.
 
Autre probleme:
 
je genere une requete SQL à partir d'un formulaire (pour mon moteur de recherche). Un des champs correspond à un champ de type int dans ma base de données. Voilà la requete qui est générée lorsque j'effectue une recherche par numero d'installation uniquement:
 
SELECT HABITATION.num_PC, num_installation, lieu_dit, nom_proprio, prenom_proprio FROM HABITATION, PROPRIETAIRE WHERE num_installation='1' AND HABITATION.num_proprio=PROPRIETAIRE.num_proprio
 
qd j'envoie la requete il affiche le message:
 
Type de données incompatible dans l'expression du critère.
 
Je débute en ASP et je ne connais pas trop les messages d'erreur je vois pas ou il peut y avoir un probleme de type à ce niveau
 
merci encore pour ton aide

Reply

Marsh Posté le 10-05-2001 à 17:03:25    

Le champ num_installation, tu es sûr que c'est un char???
 
Ca a plus la tête d'un int... et donc, pas de quotes!
 
Sinon, pour la 1e question, je vais jeter un oeil à l'aide, mais je ne crois pas qu'un truc comme soundex() existe.

Reply

Marsh Posté le 10-05-2001 à 17:04:55    

HO BONHOMME!!!
 
DIFFERENCE (char_expr1, char_expr2)
 
Shows the difference between the values of two character expressions as returned by the SOUNDEX function.The DIFFERENCE function compares two strings and evaluates the similarity between them, returning a value from 0 through 4. The value 4 is the best match.
 
 
Bin en fait, si, ça existe :hot:

Reply

Marsh Posté le 10-05-2001 à 17:07:55    

La fonction SOUNDEX() existe en SQL SERVER !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 10-05-2001 à 17:27:46    

C'est pas ce qu'il y a marqué dans mon post précédent? :??:

Reply

Marsh Posté le 10-05-2001 à 18:35:15    

Sinon... Avec SQL Server, en mettant l'option "Full text search", tu peux utiliser Index Server pour faire le requêtes...
 
Index Server reconnais plusieurs langues et surtout reconnais les racines communes à deux mots :
 
mettons que tu cherches "lenteur", il va te sortir aussi "lent", "lentement", etc...
 
La syntaxe Index Server pour faire ça, c'est 'lenteur**'
 
par contre, je n'ai jamais utilise cette capacité d'index serveur... (je me contente de les utiliser à part, mes besoins ne justifiants pas un "full text search" sur mes bases de données

 

[edit]--Message édité par magicbuzz--[/edit]

Reply

Marsh Posté le 10-05-2001 à 19:28:16    

Merci les gars je vais faire au mieux. Je vous tiens au courant.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed