2010-07-30 6 views
7

Ceci est la requête de PHP en utilisant MySQL. quelqu'un peut-il s'il vous plaît convertir cette requête en requête sqlite?comment prendre sqrt en sqlite

Requête:

select SQRT(POW(latitude, 2) + POW(longitude, 2)) *110 as dist from route 

Cordialement, Merci

+2

Je ne sais pas SQLite, mais comme ces [fonctions] (http://www.sqlite.org/lang_corefunc.html) semblent être indisponibles, vous pouvez essayer d'utiliser une autre distance: 'abs (latitude) + abs (longitude) '. Ou tout simplement 'latitude * latitude + longitude * longitude' dans la requête (par exemple pour le tri), et effectuer le reste' SQRT (x) * 110' en PHP. – pascal

+0

merci beaucoup, je l'ai fait, la façon u dire. – Naveed

Répondre

5

Je l'ai fait avec l'aide de "pascals".

La requête devient:

SELECT 
    * 
FROM 
    (
     SELECT 
      temperature, 
      climate, 
      temperatureTime, 
      photoURL, 
      (((latitude - 37.331689) * (latitude - 37.331689)) + (longitude - (-122.030731)) * (longitude - (-122.030731))) * (110 * 110) AS dist 
     FROM 
      weather 
    ) 
    AS tab 
WHERE 
    tab.dist <= (1.0 * 1.0); 

Cette requête est utilisée pour trouver les coordonnées les plus proches de lieux autour de moi à 1 km.

4

Il est trivial d'enregistrer PHP de sqrt avec sqlite_create_function.

sqlite_create_function($sqlite_db, "sqrt", "sqrt", 1); 

sans vous inscrire, vous pouvez utiliser:

php('sqrt', value); 
Questions connexes