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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Tester la présence d'un certain enregistrement

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Tester la présence d'un certain enregistrement

n°1998497
Pascal le ​nain
Posté le 02-06-2010 à 19:45:10  profilanswer
 

Bonjour,
 
Je souhaite savoir si un certain enregistrement existe sur une table.
 
Je connais 2 méthode mais elles ne me conviennent pas :


"SELECT champs FROM table WHERE condition"
 
Puis mysql_num_rows() du résultat


 
Ou


"SELECT COUNT(champ) as nbre FROM table WHERE condition"
 
Puis exploitation directe du résultat


 
Le problème, c'est que dans les deux cas, on check la totalité du contenu de la table pour retourner le nombre d'enregistrements.
Or ce que je veux, c'est savoir si un tel enregistrement existe. Une fois un premier enregistrement trouvé, on peut arrêter de chercher. Inutile de chercher plus.
 
Ya-t-il une méthode qui remplit parfaitement cette fonction ?
 
Merci d'avance  :hello:


Message édité par Pascal le nain le 02-06-2010 à 19:45:51
mood
Publicité
Posté le 02-06-2010 à 19:45:10  profilanswer
 

n°1998531
flo850
moi je
Posté le 02-06-2010 à 21:52:22  profilanswer
 

SELECT id FROM table WHERE condition LIMIT 1

 

si ta table ets bien conçue, il y ad es indexe, le SGBD ne parcourt donc pas la table mais juste l'indexe


Message édité par flo850 le 02-06-2010 à 21:52:48
n°1998534
Pascal le ​nain
Posté le 02-06-2010 à 21:58:17  profilanswer
 

Oui j'ai pensé à cette solution.
Mais même avec un LIMIT, le SGBD renvoie la valeur de l'enregistrement.
Je cherche une fonction booléenne qui ne fait pas de travail inutile.
 
Si elle n'existe pas, tant pis, je ferai avec...

Message cité 1 fois
Message édité par Pascal le nain le 02-06-2010 à 21:58:43
n°1998543
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 02-06-2010 à 22:07:14  profilanswer
 

ça existe en MySQL ça ?
 

Code :
  1. IF EXISTS(SELECT machin FROM truc WHERE chose)... ?


---------------
J'ai un string dans l'array (Paris Hilton)
n°1998547
flo850
moi je
Posté le 02-06-2010 à 22:09:20  profilanswer
 

Pascal le nain a écrit :

Oui j'ai pensé à cette solution.
Mais même avec un LIMIT, le SGBD renvoie la valeur de l'enregistrement.
Je cherche une fonction booléenne qui ne fait pas de travail inutile.
 
Si elle n'existe pas, tant pis, je ferai avec...


si tu fais un SELECT d'un seul champ , ça ne doit pas être bien lourd quand meme

n°1998552
Pascal le ​nain
Posté le 02-06-2010 à 22:13:57  profilanswer
 

Harkonnen a écrit :

ça existe en MySQL ça ?
 

Code :
  1. IF EXISTS(SELECT machin FROM truc WHERE chose)... ?



 
Et ca renverrai quoi ?  :sarcastic:  
 

flo850 a écrit :


si tu fais un SELECT d'un seul champ , ça ne doit pas être bien lourd quand meme


 
Oui... mais c'est pabô  :whistle:

n°1998563
flo850
moi je
Posté le 02-06-2010 à 22:30:00  profilanswer
 

essaye de faire un replace et compte le nombre champs modifié alors :o

n°1998635
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 03-06-2010 à 09:20:16  profilanswer
 

Pascal le nain a écrit :


 
Et ca renverrai quoi ?  :sarcastic:  
 

http://technet.microsoft.com/fr-fr [...] 88336.aspx


---------------
J'ai un string dans l'array (Paris Hilton)
n°1998694
MEI
|DarthPingoo(tm)|
Posté le 03-06-2010 à 11:08:25  profilanswer
 

Sans vouloir enfoncer une porte ouverte, mais c'est un pas un peut trop tiré par es cheveux ?
 
C'est du SQL de base :

Code :
  1. select  * from ma_table where ma_colonne = ma_clef_primaire;


C'est bien ce qu'il faut écrire pour savoir si on a déjà un enregistrement dans la table. :??:
 
Et sauf si on veut faire un requête corrélée/imbriqué, si c'est pour savoir si on doit faire un insert ou un update on a pas le choix.
 
Alors on peut se limité à la colonne de clef_primaire ou a mettre une valeur bidon genre "1", mais bon... Fondamentalement pour le SGBD ça ne change pas grand chose.


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |

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

  Tester la présence d'un certain enregistrement

 

Sujets relatifs
Tester l'encodage des caractèrestester l'existence d'un fichier et plus
je n'arrive pas à tester l'existence d'un fichier[resolut]
[UNIX/KSH] Tester l'existence de tables ! Erreur louche ! - RESOLU -Pb d'enregistrement en base d'un tableau linéarisé
tester la connexion entre deux posteVérifier enregistrement DLL
Code C++ Pour tester un mémoire DDR2Tester un entier vide (isEmpty, isNull)?
Plus de sujets relatifs à : Tester la présence d'un certain enregistrement


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