Помогите с регуляркой для MySQL
В БД MySQL, в поле типа varchar, в строке хранится либо 1 IP адрес, либо несколько через запятую.
123.22.33.12,21.24.54.215,234.23.15.35
Необходимо осуществлять поиск по этой строке заданного IP-адреса.
Через LIKE %IP_ADRESS% не получится, т.к. например запрос IP "21.24.54.2" будет совпадать со строкой выше. Но ведь там другой IP 21.24.54.215.
Остаётся использовать REGEXP, благо строк в таблице меньше сотни, тормозить не будет.
Помогите с регуляркой, думал использовать что-то вроде \D123.22.33.12\D , но возникают проблемы с началом и концом строки. В регулярках не силён, поэтому прошу помощи.
Ответы (1 шт):
Предлагаю такой вариант:
WHERE `ip` REGEXP '(^|\D)".$server_ip."(,|$)'
Переменную $server_ip необходимо дополнительно обработать методом real_escape_string - real-escape-string