![]() |
|
Модераторы: skyboy |
![]()
|
|
| Leoo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 270 Регистрация: 3.10.2005 Где: г. Обнинск Репутация: нет Всего: 3 |
У меня такая проблема. Необходимо отсортировать выборку по названию компании. Но название занесены в таблицу следующим образом ООО "Компания" ЗАО «Тоже "Компания"» ОАО 'Организация' сортировку необходимо проводить по Компания, Тоже "Компания", Организация я подумал, что можно использовать в ORDER BY функцию REGEXP и с помощью ее отрезать все до первой кавычки, но как это реализовать не знаю Заранее благодарен!! -------------------- Если вы не страдаете паранойей, это не значит, что они за вами не летят! |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
ой-ли? лучше уж тогда если тыможешь определить формализованные("понимаемые" компьютером) правила предобработки для выбрасывания ненужной информации, то рационально будет хранить кроме "полного" названия ещё и "с выброшенным незначащим мусором" и сортировать по нему. а так как ты собираешься - смерть серверу. правда, в общем случае, ты набор правил для "выбрасывания" не определишь, потому контроль за работой такой автоматизации, как мне кажется, будет необходим. |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 5 Всего: 315 |
а оператор like ?
с кавычками только надо похимичить |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
как можно сортировать полный список по результату выполнения like(так же, как и regexp, кстати), если они возврщают булевское значение?
|
|||
|
||||
| Leoo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 270 Регистрация: 3.10.2005 Где: г. Обнинск Репутация: нет Всего: 3 |
Значит такое не получиться сделать. (
-------------------- Если вы не страдаете паранойей, это не значит, что они за вами не летят! |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 3 Всего: 32 |
значит, надо ввести допольнительное поле, куда писать нормализованное название.
или вообще разделить название на два поля - форма собственности и собственно название. без кавычек но, возможно, будут трудности с формализацией. впрочем, если не пытаться все сделать сразу, а дорабатывать в процессе, то можно сделать нормально |
|||
|
||||
| Leoo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 270 Регистрация: 3.10.2005 Где: г. Обнинск Репутация: нет Всего: 3 |
Поле уже поздно вводить. БД сформирована до меня.
-------------------- Если вы не страдаете паранойей, это не значит, что они за вами не летят! |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 3 Всего: 32 |
Батюшки. Такое ощущение, что БД вырублена из гранита и залита бетоном.
Две вещи, о которых вообще ничего даже не подозревают люди, пришедшие к программированию от нечего делать: это отладка и рефакторинг. Вещи, настолько же естественные для программиста, насколько не укладывающиеся в голове у юзера. Об отладке много уже писалось, и некоторые даже слышали это слово. А рефакторинг - совсем темный лес. Скажи такому, что ни одна программа не является застывшим изваянием, а постоянно подвергается доработке и изменениям - не поверят. "Как же так" - удивятся - "ведь все сформировано до меня!" |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| skyboy |
|
||||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
Akina, все же твоя конструкция не отсортирует
как просил автор в первом посте:
:( все же только автоматикой такое не сделать. разве что выдирать определенные буквосочетания("ЗАО", "ООО"), но их список должен пополняться("ЧП", "ПП" и т.д.) и контроль должен быть - вдруг это часть иностраноязычного названия? |
||||
|
|||||
| Leoo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 270 Регистрация: 3.10.2005 Где: г. Обнинск Репутация: нет Всего: 3 |
В том то и дело, что нельзя ее изменить т.к. это одно название и разбивать при заведении компании на два поля нельзя. Создать в таблице поле с юр. формой не проблема, но занести ее туда не получиться. Либо надо при занесении РНРшным скриптом резать наименование, но тогда встает проблема, что делать с теми которые уже есть? -------------------- Если вы не страдаете паранойей, это не значит, что они за вами не летят! |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
||||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 5 Всего: 315 |
зачем разбивать?
как уже говорили создать дополнительное поле и перевести в него имена компаний по нужному тебе стандарту, а старое оставить как и есть. старое используешь в обычном выводе, а по новому поиск это наиболее простой и эффективный способ |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Вот именно я ориентируюсь на пример в первом посте. И приведенные там 3 записи будут отсортированы именно так, как указано автором. Смотри внимательнее. Другое дело, если у него там ПОЛНЫЙ бардак, и форма организации где указана, а где и нет, то кавычки есть, то нет... но в примере как раз по этой части все строго, сперва форма организации, потом название в кавычках, пусть и разных. Leoo, идея нормализовать таблицу, поделив поле на два - вид и наименование, - наиболее разумна. Если ПОКА не хочется переписывать все, что привязано на старую структуру - создать вьюв и использовать его вместо исходной таблицы (тогда, возможно, еще потребуется третье поле - тип кавычки). -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Leoo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 270 Регистрация: 3.10.2005 Где: г. Обнинск Репутация: нет Всего: 3 |
Спасибо всем я справился сам
кому интересно выкладываю код
-------------------- Если вы не страдаете паранойей, это не значит, что они за вами не летят! |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |