SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 14.06.2010 09:51:13

Delonte
Участник
Зарегистрирован: 14.06.2010
Сообщений: 3

Разбиение строки

Добрый день
Очень нужна помощь,не могу нигде найти совета.
Ситуация такая. Есть база данных в которой в одном поле храниться текст формата
"индекс(6 чисел) город улица дом квартира"
например
"420000 г.Казань ул. Восстания 110 - 4"
все записано в строку,в одной ячейки.
Нужно разбить эту строку на части и отдельно выделить название города улицы и дома и закинуть в разные таблицы.
Реализовывать сказали без оболочки,то есть без использования с++,например,там то не вопрос.
Существует ли возможность такого разбиения с помощью запросов в самом мускуле? допустим через процедуры какие-либо?

Заранее спасибо всем откликнувшимся.

Неактивен

 

#2 14.06.2010 14:31:28

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: Разбиение строки

Вообще говоря нет. Даже полноценными регулярными выражениями это сделать весьма непросто, т.к. адрес можно написать по всякому. Ну например "ул. Свободы" или "Ленинградский проспект", "г.Москва" или "г. Москва" (т.е. с пробелом или без).

Неактивен

 

#3 14.06.2010 21:26:18

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Разбиение строки

Ну ладно уж - нельзя smile
Человек вон на с++ писать умеет. LOCATE() Вам поможет smile

Неактивен

 

#4 15.06.2010 08:32:40

Delonte
Участник
Зарегистрирован: 14.06.2010
Сообщений: 3

Re: Разбиение строки

Да в с++ не вопрос. Там бы я забил на пробелы и искал по точкам. От 1 точки до второй(-2 символа на ул) это название города
от второй точки до первой цифры - улица.
Мне просто интересно как это реализовать в мускуле. Я как бд кодер никчемен)))

Неактивен

 

#5 15.06.2010 08:35:27

Delonte
Участник
Зарегистрирован: 14.06.2010
Сообщений: 3

Re: Разбиение строки

Shopen,
с этим проблем нет. Ну например "ул. Свободы" или "Ленинградский проспект" в базе проходят как
ул. Свободы
пр-т. Ленинградский
так что точка везде есть
да и написать несколько прогонов,это не вопрос,ограничений на это нет. пусть 1 прогон выберет все улицы,второй проспекты и т.д.

Неактивен

 

#6 15.06.2010 12:13:57

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Разбиение строки

http://dev.mysql.com/doc/refman/5.0/en/ … tions.html
Вот тут на LOCATE() и на SUBSTR() посмотрите таки?

Неактивен

 

#7 15.06.2010 16:39:39

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: Разбиение строки

paulus написал:

Ну ладно уж - нельзя smile

Ну я просто ни разу не видел базы адресов с 100% фиксированным форматом адресов, если он такой - то да, можно разбить по пробелам на нужные части smile

Неактивен

 

#8 15.06.2010 16:52:31

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Разбиение строки

Каких только извращений не бывает в этом мире wink

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson