Модераторы: skyboy

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с IP 
:(
    Опции темы
MAKCim
Дата 8.10.2009, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: нет
Всего: 207



есть таблица, один из столбцов содержит IP адрес (обычный INTEGER, но порядок байт - сетевой)
нужно получить все записи таблицы, просортированные по IP, но с т. з. символьного представления IP
т. е.
1.10.256.7
1.11.0.1
2.0.0.0
2.0.1.0
2.0.2.255
и т. д.


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
rthsobakas
Дата 8.10.2009, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



если бы просто тип integer то можно так 
select * from TABLE  order by IP DESC
или так по возрастанию  и убыванию
select * from TABLE  order by IP ASC

Цитата

обычный INTEGER, но порядок байт - сетевой

Что такое байт сетевой?
FFFFFFFF типо из integer вычлиняете байты?

PM   Вверх
Akina
Дата 8.10.2009, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Ну конвертируй свои сетевые байты в "т.н. символьное представление" с ведущими нулями и сортирь по нему.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
MAKCim
Дата 8.10.2009, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: нет
Всего: 207



мне нужно получить не строки (к тому же сортировка строк будет работать очень медленно для большой таблицы) а данные из таблицы как есть, но в порядке убывания/возрастания IP



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Akina
Дата 8.10.2009, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Значит, преобразуй "сетевые" байты в нормальные.

Цитата(MAKCim @  8.10.2009,  23:02 Найти цитируемый пост)
к тому же сортировка строк будет работать очень медленно для большой таблицы

Ты вообще о чём? у тебя нет НИКАКИХ шансов пройти мимо filesearch без изменения структуры таблицы! так что забудь про мелочи.

Добавлено через 1 минуту и 10 секунд
Цитата(MAKCim @  8.10.2009,  23:02 Найти цитируемый пост)
мне нужно получить не строки 

Да получай! хоть два раза! я говорю по чём сортировать... не надо - ну не выводи выражение сортировки в конечный набор.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
skyboy
Дата 8.10.2009, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



Цитата(MAKCim @  8.10.2009,  17:34 Найти цитируемый пост)
обычный INTEGER, но порядок байт - сетевой

в смысле, inet_ntoa будет работать нормально?
может, сразу два поля держать - одно для сортировки и одно для выдачи? записывая одно, править триггером другое?
PM MAIL   Вверх
DimW
Дата 9.10.2009, 08:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 4
Всего: 44



Цитата(skyboy @  8.10.2009,  22:46 Найти цитируемый пост)
может, сразу два поля держать

а мускул что по функции сортировать не умеет?
вариант:
Код

select * 
  from table_ip t
order by my_function_convert_ip(t.ip)

PM MAIL ICQ   Вверх
Akina
Дата 9.10.2009, 08:30 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Цитата(DimW @  9.10.2009,  09:20 Найти цитируемый пост)
а мускул что по функции сортировать не умеет?

Умеет, умеет... но это filesearch. Я уже об этом говорил...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
DimW
Дата 9.10.2009, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 4
Всего: 44



Цитата(Akina @  9.10.2009,  08:30 Найти цитируемый пост)
но это filesearch

а индекс по функции в мускуле создать нельзя? 
в доке что то не нашел... :(
PM MAIL ICQ   Вверх
skyboy
Дата 9.10.2009, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



Цитата(DimW @  9.10.2009,  07:59 Найти цитируемый пост)
а индекс по функции в мускуле создать нельзя? 

насколько мне известно - нет.
PM MAIL   Вверх
Akina
Дата 9.10.2009, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Цитата(DimW @  9.10.2009,  09:59 Найти цитируемый пост)
а индекс по функции в мускуле создать нельзя? 

 smile А где можно?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
DimW
Дата 9.10.2009, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 4
Всего: 44



Цитата(Akina @  9.10.2009,  09:41 Найти цитируемый пост)
 А где можно? 

есть в оракле, постгрессе и скорей всего в mssql и в db2.
PM MAIL ICQ   Вверх
Akina
Дата 9.10.2009, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



В MS SQL нет. Но можно создать индекс по вычисляемому полю (с некоторыми ограничениями, конечно).
Код

CREATE TABLE t1 (a int, b int, c AS a*b)
GO
CREATE UNIQUE CLUSTERED INDEX Idx1 ON t1.c
GO



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
DimW
Дата 9.10.2009, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 4
Всего: 44



Цитата(skyboy @  9.10.2009,  09:20 Найти цитируемый пост)
насколько мне известно - нет. 

жаль :(
PM MAIL ICQ   Вверх
DimW
Дата 9.10.2009, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 4
Всего: 44



извиняюсь за уход в оффтоп но не спросить не могу.

Цитата(Akina @  9.10.2009,  10:52 Найти цитируемый пост)
Но можно создать индекс по вычисляемому полю 


Akina, я правильно понимаю (делаю вывод из примеров в документации) что в mssql вычислимое поле на основе собственной функции сделать нельзя?

Цитата(Akina @  9.10.2009,  10:52 Найти цитируемый пост)
с некоторыми ограничениями, конечно

на индекс по функции тоже есть ограничение - функция должна возвращать простые типы и при одних и тех же значениях параметров, в любой момент времени, должна возвращать одинаковое значение.  
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0603 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.