делайте как вам в прошлом вопросе посоветовали
сделайте таблицы:
s_regions+-----------------------------+
| id | name |
+-----------------------------+
| 1 | Россия |
+-----------------------------+
| 2 | Московская область |
+-----------------------------+
| 3 | Москва |
+-----------------------------+
Я мог немного напутать с полем level, так как только вчера сам узнал о таком алгоритме и не реализовываал его еще
s_regions_path+-----------------------------------+
| region_id | path_id | level |
+-----------------------------------+
| 2 | 1 | 1 | <-- Тут мы храним связь Мособласти, указываем связь с Россией
+-----------------------------------+
| 3 | 2 | 1 | <-- Тут мы храним связь Москвы указывая на Мособласть
+-----------------------------------+
| 3 | 1 | 2 | <-- Тут мы храним связь Москвы с Россией
+-----------------------------------+
Достать всех детей России (id=1):
SELECT r.id, r.name
FROM s_regions r
LEFT JOIN s_regions_path l ON l.region_id=r.id
WHERE l.path_id=1
Достать только города Мособласти (id=2), то есть только следующий уровень (не уходя глубже):
SELECT r.id, r.name
FROM s_regions r
LEFT JOIN s_regions_path l ON l.region_id=r.id
WHERE l.path_id=2
AND l.level=1
Получить все зависимости для Москвы (id=3) и отсортировать по возрастанию уровня:
SELECT r.id, r.name
FROM s_regions r
LEFT JOIN s_regions_path l ON l.region_id=r.id
WHERE l.region_id =3
ORDER BY l.level DESC