(Это ответ на ответ Эндрю, но он не помещается в комментарии.)
WHERE __input_ip__ REGEXP concat('^', replace(ip_address, '.', '\.'))
Хороший план, за исключением того, что в MySQL \ есть (нестандартный SQL) строковый литерал escape, поэтому чтобы получить его в регулярном выражении, вам, вероятно, потребуется '\\\.'
!
... кроме как в режиме ANSI, это не так. Argh! Чтобы быть совместимым, вы должны получить обратную косую черту другим способом:
WHERE __input_ip__ REGEXP CONCAT('^', REPLACE(ip_address, '.', CHAR(92, 46)))
Тьфу. Может быть, лучше забыть регулярное выражение и сделать это с помощью строки ops:
WHERE LEFT(__input_ip__, CHAR_LENGTH(ip_address))=__input_ip__