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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  oracle9i : données hétérogènes dans une whereclause

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

oracle9i : données hétérogènes dans une whereclause

n°1252465
badbatin
Posté le 24-11-2005 à 17:42:04  profilanswer
 

Hello,
je me retrouve en face d'un pb technique, simple à comprendre.
 
En gros, je voudrais faire un :  
"select NOM,PRENOM from USERS where NOM=..."
 
Cette requête sera lancé à une page Web en PHP, et les valeurs saisies peuvent être de plusieurs type :
  - un nom simple : exemple : 'DUPONT'
  - une liste de nom : exemple : 'DUPONT','DURAND'
  - une liste non précise : exemple 'DU%'
 
Sachant que tout peut être mélangé, l'utilisateur devra pouvoir mettre en entrée : 'MAURICE','DU%','ROBERT'
 
J'ai beau réfléchir, je trouve pas de solution simple, à moins de détecter le %, et je génére une sous-requête en dynamique ...
 
Help !  :heink:  

mood
Publicité
Posté le 24-11-2005 à 17:42:04  profilanswer
 

n°1252468
skeye
Posté le 24-11-2005 à 17:48:13  profilanswer
 

tu remplaces le '=' par un 'like', et un tu ajoutes un 'or like' par mot? :??:


---------------
Can't buy what I want because it's free -
n°1252473
badbatin
Posté le 24-11-2005 à 17:54:21  profilanswer
 

mouiiii, mais bon.
J'ai potentiellement plusieurs centaines de valeurs en entrée, et plusieurs where clause différent (NOM like 'pouet' and PRENOM like 'prout'). L'itération en dynamique dans PHP serait à mon avis super difficile à gérer

n°1252474
skeye
Posté le 24-11-2005 à 17:58:01  profilanswer
 

Bah explique mieux le contexte du problème, et l'origine des valeurs saisie, alors...
Tous les noms et tous les prénoms (et ainsi de suite) entrés peuvent être combinés?
Si non, comment tu les associes?
Si oui, quel est le problème?[:joce]


---------------
Can't buy what I want because it's free -
n°1252485
badbatin
Posté le 24-11-2005 à 18:13:35  profilanswer
 

Il y a au max 2 clauses renseignés par l'utilisateur + pas mal de fixes. Si il y a 2 clauses à renseigner, il n'y a que la première qui a un %, l'autre valeur peut se traduire en in(...)
 
Exemple :  
"select NOM,PRENOM from USERS where NOM=... and PRENOM=... and date>sysdate and machine=truc and service=bidule;"
 
Donc, je pourrais écrire ma requête en :  
"select NOM,PRENOM from USERS where (NOM like ...  or NOM like .... or NOM like ...) and (PRENOM in ('Roberto')) and date>sysdate and machine=truc and service=bidule;"
 
Potentiellement, il peut y avoir une liste de qq centaines (>500) de NOM ...
 

n°1252487
mareek
Et de 3 \o/
Posté le 24-11-2005 à 18:21:17  profilanswer
 

Si tu peux avoir plusieurs centaines de noms, ils serait effectivement intéressant d'un point de vue performance de détecter les nom comportant des caractères jocker pour les traiter séparément des autres (que tu traiterait dans un IN). Mais Si ta base est d'un taille raisonnable et/ou que les perfs coté BD ne sont pas un problème, opte pour la solution du 'or NOM like' tu te feras moins chier à le coder et le pré traitement avant de lancer la requête sera plus rapide


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°1254632
Beegee
Posté le 28-11-2005 à 13:23:40  profilanswer
 

En pratique, personne ne va entrer à la main 500 noms à rechercher ... ou alors il y a des fous du clavier :D

n°1254910
mareek
Et de 3 \o/
Posté le 28-11-2005 à 20:15:56  profilanswer
 

Beegee a écrit :

En pratique, personne ne va entrer à la main 500 noms à rechercher ... ou alors il y a des fous du clavier :D


Qui te dis que les noms sont saisis au clavier ? si ça se trouve l'utilisateur les sélectionne dans une liste de 2000 salarié avec des critères qui lui sont propres et qu'on ne peut pas traduire sous forme de requête ;)


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack

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

  oracle9i : données hétérogènes dans une whereclause

 

Sujets relatifs
oracle9i : limitation du in( ) ?empecher l'enregistrement automatique des données dans access
Sécuriser une base de données[Javascript] [XMLHttpRequest] Probleme IE pour récupérer données X
PB sélection de données MySQL[Résolu] XMLHttpRequest : Impossible de récupérer les données
Les images, php et base de donnéesla sélection de la base de données échoue
[ eVC++ ] [socket] Eviter les envois de données "dans la nature"Afficher les données d'un tableau avec while
Plus de sujets relatifs à : oracle9i : données hétérogènes dans une whereclause


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