#mysql #ip
#mysql #ip
Вопрос:
в базе данных Mysql у меня есть таблица, в которой я пытаюсь сохранить адреса IPv4. Таблица состоит из 2 столбцов: «_id» (первичный ключ) и целочисленного столбца, в котором я хотел бы сохранить ip-адреса с помощью INET_ATON. Я вставляю запись в таблицу с помощью следующей команды, и она работает без проблем:
INSERT INTO db_name.table (IPv4) VALUES (INET_ATON('151.20.141.163'))
Однако, когда я пытаюсь получить идентификатор IP-адреса, который я сохранил, запрос не возвращает записи.
SELECT _id FROM db_name.table WHERE IPv4 = INET_ATON('151.20.141.163')
Где я ошибаюсь?
Заранее благодарю вас
Комментарии:
1.
INET_ATON()
принимает число, а не строку — это не то, что вы ищете!2. @EugenRieck: нет, для этого требуется строка, см. Руководство
3. Я не могу воспроизвести это поведение с учетом IPv4
INT UNSIGNED
, как сказал Станислав.
Ответ №1:
Возможно, проблема в типе вашего поля IPv4. Он должен быть INT БЕЗ ЗНАКА, а не INT (документация Mysql)