Помогите с регуляркой для MySQL

verfaa

Профессор
Регистрация
29 Янв 2007
Сообщения
412
Реакции
48
В БД 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 , но возникают проблемы с началом и концом строки. В регулярках не силён, поэтому прошу помощи.
 

Sorcus

Sorcus. A New Beginning.
Регистрация
10 Июл 2011
Сообщения
513
Реакции
884
В БД 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 , но возникают проблемы с началом и концом строки. В регулярках не силён, поэтому прошу помощи.
Вот так можно. Проверяешь, является ли у тебя последний символ запятой, либо это конец строки.
Код:
21.24.54.2(,|$)
 
Сверху