|
|
|
Сортировка номеров по регионам
|
|||
|---|---|---|---|
|
#18+
День добрый. Заранее извиняюсь если подобный вопрос уже был. Имеем: В одной базе 2 таблицы Table1 - База кодов мобильных номеров по регионам. Взято отсюда DEF - первые 3 цифры номера dFROM - начало диапазона dBEFORE - конец диапазона REGION - регион Table2 PHONE_NUMBER - номера телефонов REGION Нужно из Table2 брать номер телефона (SELECT?). Определять регион номера, используя Table1, и полученный регион записывать в Table2. В голове я понимаю что надо разбить номер. Найти в таблице сперва DEF, потом нужный диапазон, и полученный регион записать в Table2. Но как это реализовать не могу придумать. И вообще не изобретаю ли я нерабочий велосипед??? Может это проще реализовать через парсер? (Россвязь представляет базу в формате html) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2015, 13:39:38 |
|
||
|
Сортировка номеров по регионам
|
|||
|---|---|---|---|
|
#18+
al.inВ голове я понимаю что надо разбить номер.Разумнее трансформировать таблицу кодов к версии НомерОт-НомерДо-регион. А дальше тупо BETWEEN. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2015, 13:50:41 |
|
||
|
Сортировка номеров по регионам
|
|||
|---|---|---|---|
|
#18+
Akinaal.inВ голове я понимаю что надо разбить номер.Разумнее трансформировать таблицу кодов к версии НомерОт-НомерДо-регион. А дальше тупо BETWEEN. поддерживаю, и не надо будет разбивать номер на составляющие - ведь номер это число, а оно мало места в базе занимает, так что можно спокойно от и до хранить ввиде числа полного номера. Акина, а что подскажешь если ситуация похожая, но речь идёт о странах... тут какбы фича - код страны не фиксирован скажем штаты канада, пуэрторико отличать это код 1(северная америка) и потом код региона есчё 3 цыфры и так можно отличить, но для идентификации ватикана будет уже 6 первых цифр аналогично по цифре 7 нельзя росию от хазахкстана отличить и того получаем базу(таблицу) по типу -первые-цифры-номера- -страна- -регион- -город- и записи яля 1 USA NULL NULL 1 CANada NULL NULL 1 PURiko NULL NULL 1356 CANada OTTAWA NULL 1956 USA ILLinois NULL .... я от фонаря привёл примеры, но тоесть есть общие записи, где код страны и без детализации по региону есть с детализацией до региона, а также и до города... и получается из такой таблицы надо найти записи для заданного номера, у которых 1 цифра первая совпала или 2 или 3 или ... 6 отсортировать по длине совпавшей части(первого столбика) в убывающем порядке потом брать самую(ые) длинные, и если одна хорошо, если несколько записей совпало... ну допустим некий код в некой странне отвечает двум регионам, дальнейшая детализация по городу уже сможет пролить свет, но у нас пока нету этих болле детализированных данных. вот как в такой ситуации быть. сейчас я иммено делаю запрос с ИЛИ на совпадение или одного или .... или 6 символов номера с кодом, и сортирую по длинне кода , беру самые длинные. и уже они попадают в обёртку(класс на пхп) который ведёт себя почти как модель ТЕЛЕФОННЫЙ_КОД но, если было найдено несколько и страна одна, то это и страна, если регионов несколько, то при обращению к полю регион выдаёться любой, есть специальное обращение позволяющее получить информацию всю - масив всех возможных регионов ... ну тоесть както так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 11:59:05 |
|
||
|
Сортировка номеров по регионам
|
|||
|---|---|---|---|
|
#18+
близко к теме если не оно Выбор самого точного префикса по номеру ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 12:16:28 |
|
||
|
Сортировка номеров по регионам
|
|||
|---|---|---|---|
|
#18+
Alex_Ustinov, спасибо огромное, именно такую таблицу и я строю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 13:06:34 |
|
||
|
Сортировка номеров по регионам
|
|||
|---|---|---|---|
|
#18+
alex564657498765453, похоже мой вариант с или лучше....ибо использует индекс. я то по миру таблицу буду делать, она далеко не мелкая получиться...ну 10000 записей точно будет, а может и до 100000 дотянет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 13:10:14 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39042270&tid=1832761]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
43ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 307ms |

| 0 / 0 |
