Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL изчислява разстояние (просто решение)

Не можете да посочите псевдоним в клаузата за избор от друга част на sql оператора. Трябва да поставите целия израз във вашата клауза where:

WHERE
    ROUND( SQRT( POW( ( (69.1/1.61) * ('52.64' - latitude)), 2)
        + POW(( (53/1.61) * ('6.88' - longitude)), 2)), 1) < 10

По-чисто решение би било да се използва подзаявка за генериране на изчислените данни:

  SELECT *, distance
    FROM (
       SELECT *,
           ROUND( SQRT( POW( ( (69.1/1.61) * ('52.64' - latitude)), 2)
               + POW(( (53/1.61) * ('6.88' - longitude)), 2)), 1) AS distance
           FROM lp_relations_addresses
       ) d
   WHERE d.distance < 10
ORDER BY d.distance DESC

Демонстрация:http://www.sqlize.com/q96p2mCwnJ



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql задейства симулиращи твърдения

  2. MySQL СЪЗДАВАНЕ НА ТАБЛИЦА АКО НЕ СЪЩЕСТВУВА -> Грешка 1050

  3. Схема за експортиране на MySql без данни

  4. Проблеми с Mysql Query с използване на LIKE и апостроф

  5. Основна PDO връзка с MySQL