Du bör förmodligen representera länder/städer som polygoner i DB och sedan använda OpenGIS-stil polygon skärningsfunktioner för att skära.
Men , MySQL gör det inte implementera polygonkorsning korrekt (endast MBR - Minimum Bounding Rectangle). Så detta tillvägagångssätt, även om det är korrekt i teorin, kommer helt enkelt inte att fungera för dig med MySQL. Du kanske vill överväga att flytta till Postgres.
Det du kan göra är att använda din DB:s MBR-korsningsfunktioner och komplettera dem med din egen kod som gör polygon/punktskärning (du kan hitta bibliotek som gör detta).