|
Построить индексное выражение
|
|||
---|---|---|---|
#18+
есть данные ip, которые внесены по разному, точка может находиться в любом месте, как-то надо сделать индекс по первым символов до точки, потом по вторым, третьим и четвёртым. Можно воспользоваться substr() и вырезать до точки, но индексное выражение получится очень длинным , что-то типа (PADL(SUBSTR(ALLTRIM(sip_ipa),RAT(".",ALLTRIM(sip_ipa),2)+1,RAT(".",ALLTRIM(sip_ipa))-RAT(".",ALLTRIM(sip_ipa),2)-1),3," ")). Есть какие-нибудь другие варианты для построения индекса для значений ip, чтоб получилось покороче? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 06:07 |
|
Построить индексное выражение
|
|||
---|---|---|---|
#18+
STRTRAN() ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 09:15 |
|
Построить индексное выражение
|
|||
---|---|---|---|
#18+
А что эта функция даст? Что менять на что? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 09:46 |
|
Построить индексное выражение
|
|||
---|---|---|---|
#18+
Поля создавайте отдельные. Для соответствующих фрагментов. И по этим полям стройте простые индексы Судя по самому вопросу, парсинг полученного значения - не тривиальная задача. Вот и не пытайтесь все впихнуть в некое универсальное выражение индекса. Лучше создайте триггер (или вручную запускайте процедуру), которая учтет все возможные сценарии и разложит строку по фрагментам Можно, конечно, использовать GetWordNum(), указав в качестве разделителя точку, но, судя по постановке задачи, это не всегда сработает. Да и визуально проверять будет сложно. Отдельные поля в данном случае - проще и нагляднее. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 11:23 |
|
Построить индексное выражение
|
|||
---|---|---|---|
#18+
STRTRAN(sip_ipa,'.','') ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 11:52 |
|
Построить индексное выражение
|
|||
---|---|---|---|
#18+
спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 11:53 |
|
Построить индексное выражение
|
|||
---|---|---|---|
#18+
ВладимирМ Можно, конечно, использовать GetWordNum(), указав в качестве разделителя точку, но, судя по постановке задачи, это не всегда сработает. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 12:19 |
|
Построить индексное выражение
|
|||
---|---|---|---|
#18+
Sergey Sizov, 1. В самом первом посте было написано "... точка может находиться в любом месте" 2. Я уже вроде как сказав "спасибо", всем ответившим постарался уйти от полемики и закрыть тему. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 12:24 |
|
Построить индексное выражение
|
|||
---|---|---|---|
#18+
q1w1e1 Sergey Sizov, 1. В самом первом посте было написано "... точка может находиться в любом месте" 2. Я уже вроде как сказав "спасибо", всем ответившим постарался уйти от полемики и закрыть тему.Закрывает здесь темы отнюдь не автор первого поста в ней. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 13:26 |
|
Построить индексное выражение
|
|||
---|---|---|---|
#18+
12.345.678 = 123.45.678 ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 14:40 |
|
Построить индексное выражение
|
|||
---|---|---|---|
#18+
? padl(GETWORDNUM("12.345.678",1,"."),3," "); +padl(GETWORDNUM("12.345.678",2,"."),3," "); +padl(GETWORDNUM("12.345.678",3,"."),3," "); +padl(GETWORDNUM("12.345.678",4,"."),3," "); =; padl(GETWORDNUM("123.45.678",1,"."),3," "); +padl(GETWORDNUM("123.45.678",2,"."),3," "); +padl(GETWORDNUM("123.45.678",3,"."),3," "); +padl(GETWORDNUM("123.45.678",4,"."),3," ") ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2020, 10:30 |
|
|
start [/forum/topic.php?fid=41&fpage=4&tid=1581546]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
24ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 120ms |
0 / 0 |