Задавайте вопросы, мы ответим
Вы не зашли.
Добрый день
Очень нужна помощь,не могу нигде найти совета.
Ситуация такая. Есть база данных в которой в одном поле храниться текст формата
"индекс(6 чисел) город улица дом квартира"
например
"420000 г.Казань ул. Восстания 110 - 4"
все записано в строку,в одной ячейки.
Нужно разбить эту строку на части и отдельно выделить название города улицы и дома и закинуть в разные таблицы.
Реализовывать сказали без оболочки,то есть без использования с++,например,там то не вопрос.
Существует ли возможность такого разбиения с помощью запросов в самом мускуле? допустим через процедуры какие-либо?
Заранее спасибо всем откликнувшимся.
Неактивен
Вообще говоря нет. Даже полноценными регулярными выражениями это сделать весьма непросто, т.к. адрес можно написать по всякому. Ну например "ул. Свободы" или "Ленинградский проспект", "г.Москва" или "г. Москва" (т.е. с пробелом или без).
Неактивен
Ну ладно уж - нельзя
Человек вон на с++ писать умеет. LOCATE() Вам поможет
Неактивен
Да в с++ не вопрос. Там бы я забил на пробелы и искал по точкам. От 1 точки до второй(-2 символа на ул) это название города
от второй точки до первой цифры - улица.
Мне просто интересно как это реализовать в мускуле. Я как бд кодер никчемен)))
Неактивен
Shopen,
с этим проблем нет. Ну например "ул. Свободы" или "Ленинградский проспект" в базе проходят как
ул. Свободы
пр-т. Ленинградский
так что точка везде есть
да и написать несколько прогонов,это не вопрос,ограничений на это нет. пусть 1 прогон выберет все улицы,второй проспекты и т.д.
Неактивен
http://dev.mysql.com/doc/refman/5.0/en/ … tions.html
Вот тут на LOCATE() и на SUBSTR() посмотрите таки?
Неактивен
paulus написал:
Ну ладно уж - нельзя
Ну я просто ни разу не видел базы адресов с 100% фиксированным форматом адресов, если он такой - то да, можно разбить по пробелам на нужные части
Неактивен
Каких только извращений не бывает в этом мире
Неактивен