U moet waarschijnlijk landen/steden voorstellen als polygonen in de database, en vervolgens OpenGIS-achtige polygoon-kruisingsfuncties gebruiken om elkaar te snijden.
Maar , MySQL doet niet polygoondoorsnijding correct implementeren (alleen MBR - Minimum Bounding Rectangle). Dus deze benadering, hoewel in theorie correct, zal gewoon niet voor u werken met MySQL. Je zou kunnen overwegen om naar Postgres te verhuizen.
Wat u kunt doen, is de MBR-doorsnijdingsmogelijkheden van uw database gebruiken en deze aanvullen met uw eigen code die polygoon/puntkruising doet (u kunt bibliotheken vinden die dit doen).