Как преобразовать IP-записи abcd в IP-значение с помощью функции в MySQL? - PullRequest
1 голос
/ 10 декабря 2010

Вот таблица, которая у меня есть ...

user (
  id        int unsigned  primary key
  ip        varchar(15)   not null
  ip_value  int unsigned  default null
)

Некоторые примеры данных

id    ip            ip_value
123   5.68.23.10    NULL
592   31.52.11.49   NULL

Мне нужно обновить все записи в пользовательской таблице с помощью функции.

Если IP состоит из частей ABCD, ip_value можно рассчитать следующим образом:

(A * 256 * 256 * 256) + (B * 256 * 256) + (C * 256) + D

После этого таблица должна выглядеть следующим образом

id    ip            ip_value
123   5.68.23.10    88348426
592   31.52.11.49   523504433

Как я могувыполнить это с помощью запроса MySQL?

1 Ответ

4 голосов
/ 10 декабря 2010

вы можете использовать функцию INET_ATON, чтобы сделать это

SELECT id, ip, INET_ATON(ip) AS ip_value from your_table;

Дополнительная информация: http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html#function_inet-aton

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...