Du bør sandsynligvis repræsentere lande/byer som polygoner i DB, og derefter bruge OpenGIS-stil polygon skæringsfunktioner til at skære hinanden.
Men , MySQL gør ikke implementere polygon skæringspunkt korrekt (kun MBR - Minimum Bounding Rectangle). Så denne tilgang, selvom den er korrekt i teorien, vil simpelthen ikke fungere for dig med MySQL. Du vil måske overveje at flytte til Postgres.
Det du kan gøre er at bruge din DB's MBR-krydsningsfunktioner og supplere dem med din egen kode, der laver polygon-/punktkryds (du kan finde biblioteker, der gør dette).