mysql空間インデックスを使用して、近くの座標アドレスを検索し、距離でソートします.

569 ワード

SELECT
	address,X(address_loc),Y(address_loc)
FROM
	address
WHERE
	MBRContains (
		LineString (
			Point (
				30.620076 + 10 / (
					111.1 / COS(RADIANS(104.067221))
				),
				104.067221 + 10 / 111.1
			),
			Point (
				30.620076 - 10 / (
					111.1 / COS(RADIANS(104.067221))
				),
				104.067221 - 10 / 111.1
			)
		),
		address_loc
	)
ORDER BY (power(ABS(30.620076-X(address_loc)),2) + power(ABS(104.067221-Y(address_loc)),2));