Tester la présence d'un certain enregistrement - SQL/NoSQL - Programmation
Marsh Posté le 02-06-2010 à 21:52:22
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
Marsh Posté le 02-06-2010 à 21:58:17
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...
Marsh Posté le 02-06-2010 à 22:07:14
ça existe en MySQL ça ?
Code :
|
Marsh Posté le 02-06-2010 à 22:09:20
Pascal le nain a écrit : Oui j'ai pensé à cette solution. |
si tu fais un SELECT d'un seul champ , ça ne doit pas être bien lourd quand meme
Marsh Posté le 02-06-2010 à 22:13:57
Harkonnen a écrit : ça existe en MySQL ça ?
|
Et ca renverrai quoi ?
flo850 a écrit : |
Oui... mais c'est pabô
Marsh Posté le 02-06-2010 à 22:30:00
essaye de faire un replace et compte le nombre champs modifié alors
Marsh Posté le 03-06-2010 à 09:20:16
Pascal le nain a écrit : |
http://technet.microsoft.com/fr-fr [...] 88336.aspx
Marsh Posté le 03-06-2010 à 11:08:25
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 :
|
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.
Marsh Posté le 02-06-2010 à 19:45:10
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
Message édité par Pascal le nain le 02-06-2010 à 19:45:51