Probabilmente dovresti rappresentare paesi/città come poligoni nel DB, quindi utilizzare le funzioni di intersezione dei poligoni in stile OpenGIS per intersecare.
Ma , MySQL non implementare correttamente l'intersezione del poligono (solo MBR - Minimum Bounding Rectangle). Quindi questo approccio, sebbene in teoria corretto, semplicemente non funzionerà per te con MySQL. Potresti prendere in considerazione l'idea di trasferirti a Postgres.
Quello che puoi fare è utilizzare le funzionalità di intersezione MBR del tuo DB e integrarle con il tuo codice che esegue l'intersezione di poligoni/punti (puoi trovare librerie che lo fanno).