Общие > Базы данных
Использование масок
Ardzhan:
Xander
--- Цитировать ---А битовые операции MySQL действительно с символами не работают
--- Конец цитаты ---
У меня почему то не сработало и это:
--- Цитировать ---
--- Конец цитаты ---
--- Цитировать ---У меня есть ощущение, что пробежаться с битовыми операциями в PHP-массиве может быть быстрее, чем с регекспами в базе, но я в этом не уверен.
--- Конец цитаты ---
Пробежаться может-то и быстрее, но представь, что прийдется загрузить сначала в ПХП весь результат запроса. По-моему будет быстрее внутри сервера MySQL все это выполнить...
2 MAKC
--- Цитировать --- как тебе уже тут писали - через REGEXP
--- Конец цитаты ---
:D Что через регулярку, я и сам знаю... А как, если не секрет...
ThE0ReTiC:
например так (у меня так работает):
--- Код: ---
Select SUM(bytes) FROM traf_ext WHERE (to_port=\'80\' or to_port=\'443\' or to_port=\'8080\') and from_ip REGEXP "^10\\.0\\.0" and (TO_DAYS(now())-TO_DAYS(dat))
Ardzhan:
Я понимаю, что это работает... И знаю как MySQL использовать регулярки я тоже знаю. Но задача-то не выбрать по маске, а...
В базе есть строчки, которые содержат маски.
Надо подсчитать кол-во масок, которым соответствует IP
YA:
Тогда их надо выбирать из базы и строить regexp\'ы уже из них. Это если ты не хочешь разбивать адрес на 4 поля по байту (хотя я не понимаю, почему).
AlieN:
select count(*)
Навигация
Перейти к полной версии