Update d'une table pour des enregistrements venant d'une autre table - SQL/NoSQL - Programmation
Marsh Posté le 23-05-2016 à 14:45:08
Bonjour, Je travaille avec MySQL et j'essaye d'optimiser un script PHP. Actuellement, j'ai la portion de code lente suivante :
1) Récupération des enregistrements à traiter : SELECT td.lat, td.lng, td.level, td.radius FROM TableData td WHERE td.level >= 10 2) Pour chaque enregistrement retourné :SI level >= 60 ALORS$Sql = "UPDATE TableCG cg SET cg.nbcircles = cg.nbcircles + 1, cg.level = IF(cg.level >= ".$row['level'].", cg.level, ".$row['level']." )WHERE (6366000 * 2 * ASIN(SQRT(POW(SIN((RADIANS(".$row['lat']." ) - RADIANS(cg.lat)) / 2.0), 2)+ COS(RADIANS(".$row['lat']." )) * COS(RADIANS(cg.lat)) * POW(SIN((RADIANS(".$row['lng']." ) - RADIANS(cg.lng)) / 2.0), 2)))) <= ".$row['radius'] SINON$Sql = "UPDATE TableCG cg SET cg.nbcircles = cg.nbcircles + 1, cg.level = IF(cg.level >= ".$row['level'].", cg.level, ".$row['level']." )WHERE (6366000 * 2 * ASIN(SQRT(POW(SIN((RADIANS(".$row['lat']." ) - RADIANS(cg.lat)) / 2.0), 2)+ COS(RADIANS(".$row['lat']." )) * COS(RADIANS(cg.lat)) * POW(SIN((RADIANS(".$row['lng']." ) - RADIANS(cg.lng)) / 2.0), 2)))) BETWEEN ".(0.5 * $row['radius'])." AND ".$row['radius']; FIN SI 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
Make sure you enter the(*)required information where indicate.HTML code is not allowed
Marsh Posté le 23-05-2016 à 14:45:08
Bonjour,
Je travaille avec MySQL et j'essaye d'optimiser un script PHP. Actuellement, j'ai la portion de code lente suivante :
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
---------------
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