Автоматическое преобразование столбца db mySQL в Translit
На данный момент есть таблица с населёнными пунктами вида
Нужно добавить столбец translit и преобразовать строку city_name_ru в транслит с заменой пробелов знаком _ и убрать все другие знаки, чтобы получилось что-то вроде.
Было:
Стало:
Может быть кто то уже сталкивался с таким и может подсказать как это реализовать..?
Желательно ещё сделать что бы если такой город уже есть, то к ниму делать префикс вроде _1, _2 и так далее.
CREATE TABLE IF NOT EXISTS `base_cities` (
`id_city` int(10) unsigned NOT NULL AUTO_INCREMENT,
`id_region` int(10) unsigned NOT NULL,
`id_country` mediumint(8) unsigned NOT NULL,
`sort` int(11) NOT NULL,
`city_name_ru` varchar(255) NOT NULL,
`city_name_en` varchar(255) NOT NULL,
PRIMARY KEY (`id_city`),
KEY `id_region` (`id_region`),
KEY `id_country` (`id_country`),
KEY `sort` (`sort`),
KEY `city_name_ru` (`city_name_ru`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=18127 ;
--
-- Dumping data for table `base_cities`
--
INSERT INTO `base_cities` (`id_city`, `id_region`, `id_country`, `sort`, `city_name_ru`, `city_name_en`) VALUES
(1, 1, 1, 1, 'Москва', 'Moscow'),
(2, 1, 1, 0, 'Абрамцево', 'Abramtsevo'),
(3, 1, 1, 0, 'Алабино', 'Alabino'),
(4, 1, 1, 0, 'Апрелевка', 'Aprelevka'),
(5, 1, 1, 0, 'Архангельское', 'Arhangelskoe'),
(6, 1, 1, 0, 'Ашитково', 'Ashitkovo'),
(7, 1, 1, 4, 'Байконур', 'Baikonur'),
(8, 1, 1, 0, 'Бакшеево', 'Baksheevo'),
(9, 1, 1, 0, 'Балашиха', 'Balashiha'),
(10, 1, 1, 0, 'Барыбино', 'Barybino'),
(11, 1, 1, 0, 'Белозёрский', 'Белозёрский'),
(12, 1, 1, 0, 'Белоомут', 'Beloomut'),
(13, 1, 1, 0, 'Белые Столбы', 'Belye Stolby'),
(14, 1, 1, 0, 'Бородино (Московская обл.)', 'Borodino (Moskovskaya obl.)'),
(15, 1, 1, 0, 'Бронницы', 'Bronnitsy'),
(16, 1, 1, 0, 'Быково (Московская обл.)', 'Bykovo (Moskovskaya obl.)'),
(17, 1, 1, 0, 'Валуево', 'Valuevo'),
(18, 1, 1, 0, 'Вербилки', 'Verbilki'),
(19, 1, 1, 0, 'Верея', 'Vereya'),
(20, 1, 1, 0, 'Видное', 'Vidnoe'),
Нужно добавить столбец translit и преобразовать строку city_name_ru в транслит с заменой пробелов знаком _ и убрать все другие знаки, чтобы получилось что-то вроде.
Было:
(16, 1, 1, 0, 'Быково (Московская обл.)', 'Bykovo (Moskovskaya obl.)'),
Стало:
(16, 1, 1, 0, 'Быково (Московская обл.)', 'Bykovo (Moskovskaya obl.)','bykovo_moskovskaya_obl'),
Может быть кто то уже сталкивался с таким и может подсказать как это реализовать..?
Желательно ещё сделать что бы если такой город уже есть, то к ниму делать префикс вроде _1, _2 и так далее.