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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Update d'une table pour des enregistrements venant d'une autre table

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Update d'une table pour des enregistrements venant d'une autre table

n°2281975
rufo
Pas me confondre avec Lycos!
Posté le 23-05-2016 à 14:45:08  profilanswer
 

Bonjour,
Je travaille avec MySQL et j'essaye d'optimiser un script PHP. Actuellement, j'ai la portion de code lente suivante :

Code :
  1. 1) Récupération des enregistrements à traiter :
  2. SELECT td.lat, td.lng, td.level, td.radius FROM TableData td WHERE td.level >= 10
  3.  
  4. 2) Pour chaque enregistrement retourné :
  5. SI level >= 60 ALORS
  6. $Sql = "UPDATE TableCG cg SET cg.nbcircles = cg.nbcircles + 1, cg.level = IF(cg.level >= ".$row['level'].", cg.level, ".$row['level']." )
  7. WHERE (6366000 * 2 * ASIN(SQRT(POW(SIN((RADIANS(".$row['lat']." ) - RADIANS(cg.lat)) / 2.0), 2)
  8. + COS(RADIANS(".$row['lat']." )) * COS(RADIANS(cg.lat)) * POW(SIN((RADIANS(".$row['lng']." ) - RADIANS(cg.lng)) / 2.0), 2)))) <= ".$row['radius']
  9.  
  10. SINON
  11. $Sql = "UPDATE TableCG cg SET cg.nbcircles = cg.nbcircles + 1, cg.level = IF(cg.level >= ".$row['level'].", cg.level, ".$row['level']." )
  12. WHERE (6366000 * 2 * ASIN(SQRT(POW(SIN((RADIANS(".$row['lat']." ) - RADIANS(cg.lat)) / 2.0), 2)
  13. + COS(RADIANS(".$row['lat']." )) * COS(RADIANS(cg.lat)) * POW(SIN((RADIANS(".$row['lng']." ) - RADIANS(cg.lng)) / 2.0), 2)))) BETWEEN "
  14. .(0.5 * $row['radius'])." AND ".$row['radius'];
  15.  
  16. FIN SI
  17.  
  18. 3)Exécuter $Sql


 
Je voudrais savoir s'il y a moyen de ne faire que 2 requêtes SQL (une par cas) ou mieux, une seule requête SQL.
 
Merci :jap:


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
mood
Publicité
Posté le 23-05-2016 à 14:45:08  profilanswer
 


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

  Update d'une table pour des enregistrements venant d'une autre table

 

Sujets relatifs
[MYSQL] Import fichier csv : empecher l'update de certaines colonnesLier un Datagrid avec une Table Access sous vb6.0
easy php - create table on delete cascadeMoteur de recherche sur une table
Select dans deux tableChanger le champs d'un enregistrement d'une table
[Excel/VBA] Pivot table - Filtrer automatiquement sur une liste d'IDProbleme d'affichage de mes enregistrements
Nombre de lignes maj supérieur au nombre de lignes de la tableEst-ce juste ? Je cherche la table d'addition en base -2.
Plus de sujets relatifs à : Update d'une table pour des enregistrements venant d'une autre table


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