FUNCTION ST_Distance_Sphere does not exist in MariaDB FUNCTION ST_Distance_Sphere does not exist in MariaDB database database

FUNCTION ST_Distance_Sphere does not exist in MariaDB


For those who still need the function in MariaDB, you can create the function based on the formula

    CREATE FUNCTION `st_distance_sphere`(`pt1` POINT, `pt2` POINT) RETURNS     decimal(10,2)    BEGIN    return 6371000 * 2 * ASIN(SQRT(       POWER(SIN((ST_Y(pt2) - ST_Y(pt1)) * pi()/180 / 2),       2) + COS(ST_Y(pt1) * pi()/180 ) * COS(ST_Y(pt2) *       pi()/180) * POWER(SIN((ST_X(pt2) - ST_X(pt1)) *       pi()/180 / 2), 2) ));    END


10.2+

This issue has been fixed and backported with MDEV-13467. It's available 10.2.38, 10.3.29, 10.4.19, 10.5.10

Find their support matrix here.


http://mysql.rjweb.org/doc.php/find_nearest_in_mysql#gcdistdeg

That blog discusses multiple ways of "finding nearest" on the globe in MySQL/MariaDB. As part of that discussion, I developed that Stored Function.