2010-07-30 11 views
7

Questa è la query di PHP che utilizza MySQL. qualcuno può per favore convertire questa query in query sqlite?come eseguire sqrt in sqlite

Query:

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

migliori saluti, Grazie

+2

Non conosco SQLite, ma poiché queste [funzioni] (http://www.sqlite.org/lang_corefunc.html) sembrano non essere disponibili, puoi provare a usare un'altra distanza: 'abs (latitude) + abs (longitudine) '. O solo "latitudine * latitudine + longitudine * longitudine" nella query (ad esempio per l'ordinamento) ed esegui il resto 'SQRT (x) * 110' in PHP. – pascal

+0

grazie mille, l'ho fatto, come dici. – Naveed

risposta

5

ho fatto con l'aiuto di "pascal".

La query diventa:

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

Questa query viene utilizzato per trovare le coordinate vicinanze della città di posizioni intorno a me meno di 1 km.

4

E 'banale per registrare di sqrt con sqlite_create_function PHP.

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

senza registrazione, è possibile utilizzare:

php('sqrt', value); 
Problemi correlati