Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1316 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Efficacité de LIKE dans une expression SELECT

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Efficacité de LIKE dans une expression SELECT

n°1105971
schneiderj
Posté le 02-06-2005 à 18:40:11  profilanswer
 

Bonjour,
 
j'ai besoin de rechercher dans un champs (de type text) d'une de mes tables la présence de plusieurs éléments. plutôt qu'une longue explication voici un exemple : j'ai une phrase A qui contient plusieur éléments tel que :

Code :
  1. {a1,e2,fa}

maintenant il faut que je verifie si tous ces éléments(a1et e2 et fa) sont contenus dans le champs de ma table qui peut être égale

Code :
  1. {12,56,a1,am,bn,e2,er,ey,fa,fm,...}

dans ce cas A est bien compris dans le champs de cet enregistrement. Je pense réaliser une requéte du type

Code :
  1. SELECT ID_P FROM table WHERE( Fingerprint LIKE '%a1%' AND Fingerprint LIKE '%e2'' AND Fingerprint LIKE '%fa%')

Cette expression étant construite dynamiquement.
 
Est-ce que cette solution peut-être remplacé par quelque chose de plus efficace ? Car je crains que la répétition de cette succession de LIKE soit assez longue à executer dés que leur nombre deviendra important (jusqu'à 50 pour une expression) et qu'il faudra l'executer sur plusieurs milliers (dizaine) d'enregistrement.
 
Merci pour vos commentaires,
Jean-Marie

mood
Publicité
Posté le 02-06-2005 à 18:40:11  profilanswer
 

n°1105988
Arjuna
Aircraft Ident.: F-MBSD
Posté le 02-06-2005 à 19:09:35  profilanswer
 

Je ne vois pas de solution miracle que de faire des AND.
 
Ceci dit, faire des AND est pas mal, puisque dès qu'un élément ne sera pas trouvé, alors il abandonnera les autres tests, ce qui devrait préserver un minimum les performances, surtout si tu es capable de savoir à l'avance si tu as beaucoup de chances de trouver chaque "mot".
 
Sinon, je te conseille de faire commencer la phrase par "," et finir par ",", et faire LIKE '%,a1,%'
 
En effet, si ta phrase contient a12, alors un test sur a1 va retourner une ligne, alors que c'est pas forcément ce que tu veux.
 
Si tu avais eu des "OR" entre les critères et non des "AND", alors tu aurais aussi pu passer par une table temporaire et faire un PHRASE.CHAMP like '%' + MOTS.MOT + '%', ce qui aurait raccourci la requête (une seule clause).

n°1106318
schneiderj
Posté le 02-06-2005 à 23:26:16  profilanswer
 

Je te remercie pour ta réponse : je crois que j'aurais mis un certain à trouver l'erreur du à la non utilisation des virgules !
 
Bonne soirée


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Efficacité de LIKE dans une expression SELECT

 

Sujets relatifs
Select multiple et remplissage d'une zone de texte [resolu tout seul]expression reguliere
personnaliser un select d'un formulaireprobleme de select
pb select et timeoutproblème expression regulière
requête sql avec likerequete sql pbl avec like
select.selectedIndex, select.options[i].valueextraire une expression
Plus de sujets relatifs à : Efficacité de LIKE dans une expression SELECT


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR