2010-07-30 13 views
7

Esta es la consulta de PHP usando MySQL. ¿Alguien puede convertir esta consulta a la consulta sqlite?cómo tomar sqrt en sqlite

Consulta:

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

Saludos, gracias

+2

No conozco SQLite, pero como estas [funciones] (http://www.sqlite.org/lang_corefunc.html) parecen no estar disponibles, puede intentar usar otra distancia: 'abs (latitude) + abs (longitud) '. O simplemente 'latitud * latitud + longitud * longitud' en la consulta (por ejemplo, para ordenar) y realice el resto' SQRT (x) * 110' en PHP. – pascal

+0

muchas gracias lo he hecho, la forma de decirlo. – Naveed

Respuesta

5

lo he hecho con la ayuda de "Pascal".

La consulta se convierte en:

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); 

Esta consulta se utiliza para averiguar las coordenadas de los lugares más cercanos a mi alrededor a 1 km.

4

Es trivial para registrar de sqrtsqlite_create_function con PHP.

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

Sin registro, puede utilizar:

php('sqrt', value); 
Cuestiones relacionadas