sql >> Database >  >> RDS >> Mysql

Een aangepaste MySQL-functie om de Haversine-afstand te berekenen?

Ja, u kunt hiervoor een opgeslagen functie aanmaken. Zoiets als dit:

DELIMITER //
  DROP FUNCTION IF EXISTS Haversine //
  CREATE FUNCTION Haversine
    ( myLat FLOAT
    , myLong FLOAT
    , db_lat FLOAT
    , db_long FLOAT
    , unit VARCHAR(20)
    )
    RETURNS FLOAT
      DETERMINISTIC
    BEGIN
      DECLARE haver FLOAT ;

      IF unit = 'MILES'                    --- calculations
        SET haver = ...                --- calculations

      RETURN haver ;
    END  //
DELIMITER ;

Ik denk niet dat het snelheidswinst oplevert, maar het is goed om alle andere redenen die je noemt:leesbaarheid, herbruikbaarheid, onderhoudsgemak (stel je vindt een fout na 2 jaar en je moet de code in een (paar) honderd plaatsen).




  1. Hoe retourneer ik een jsonb-array en een array met objecten uit mijn gegevens?

  2. Laad een csv-bestand met specifieke kolommen met PDO

  3. Dynamische MySQL met lokale variabelen

  4. Een mysql-gegevenstabel bijwerken vanuit queryparameters met behulp van nodejs en express