Построение запроса INET_ATON?

Заказчик попросил сделать поиск по частичному совпадению ip на сайте. Все было бы хорошо, если бы в базе данных ip адреса не хранились в каком-то хитром варианте :
1592386647
1602737013
3577447044

Сейчас на сайте есть только поиск по полному совпадению, и запрос имеет примерно такой вид:
SELECT * FROM `ips` WHERE ip = INET_ATON("127.0.0.1")

Можно ли реализовать поиск по частичному совпадению, к примеру в поиске вводят не 127.0.0.1 , а 127.0
  • Вопрос задан
  • 161 просмотр
Решения вопроса 2
DevMan
@DevMan
SELECT * FROM `ips` WHERE INET_NTOA(`ip`) LIKE '127.0%';
Ответ написан
tsklab
@tsklab
Здесь отвечаю на вопросы.
SELECT * FROM `ips` WHERE INET_NTOA(ip) LIKE '127.0%'
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Gomonov
@Gomonov
Используйте поиск по битвой маске. Например where ip & inet_aton('255.255.255.0'). Работает быстрее чем операции со строками
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы