SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 11.03.2009 09:43:35

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

Сортировка

Добрового времени суток... Прошу не ругаться читал форум но ничего не нашел что мголо бы мне помочь.. Вообщем есть таблица т1 в ней храняться ip адреса в формате xxx.xxx.xxx.xxx. необходимо сделать сортировку этих адресов пробовал с помошью order by получил совершенно не тот результат вместо последовательности 195.168.194.1,195.168.194.2,195.168.194.111 получил 195.168.194.1,195.168.194.111,195.168.194.2 как понял эт баг order by ... подскажите как сделать чтобы получить первую последовательность???? что необходимо указать в запросе??? тип данных tinytext... вот пример как я делаю

"SELECT * FROM `t1` odrer by x" где х-столбец содержашие ip адреса результат

id   х
10 10.0.0.0
1   10.0.10.0
8   10.0.11.0
3   10.0.21.0
2   10.0.9.0

а нужно что бы было так
id  х
10 10.0.0.0
2   10.0.9.0
1   10.0.10.0
8   10.0.11.0
3   10.0.21.0

Отредактированно Lordok (11.03.2009 09:44:09)

Неактивен

 

#2 11.03.2009 14:06:34

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

Re: Сортировка

Это не баг ORDER BY, строки сортируются именно так, как отсортировал MySQL.

IP-адреса лучше хранить в виде целых чисел («родное» представление), тогда
и сортировка будет правильной. Для небольших таблиц можете воспользоваться
функцией INET_ATON (ORDER BY INET_ATON(x)).
Для больших таблиц этот способ не подойдет, т.к. он не будет использовать индекс.

Неактивен

 

#3 11.03.2009 15:25:40

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

Re: Сортировка

Что за родное предстовление, не допонял...

Неактивен

 

#4 11.03.2009 15:29:59

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

Re: Сортировка

огромное спасиюбо очень благодарен

Неактивен

 

Board footer

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