Autor Zpráva
souki
Profil
mám textový sloupec (varchar(64)) a v něm danou ip adresu. Ta je daná bud jako např. 192.168.0.1 nebo jako 192.168.*.* nebo 192.168.0.22-54
to jsou povolené adresy. Já potřebuji ověřit zda se nachází uživatelova adresa v databázi. Jde to nějak jednoduše aniž bych ji musel systematicky procházet?
P.S.: databázi měnit nemůžu
thingwath
Profil
NIc moc me nenapada, snad by na to slo nasadit procedury v databazi, ale to by potrebovalo (v pripade ze jde o ni) mysql 5+. Ale ani to systematicke prochazeni nemusi byt uplne nejstrasnejsi.
Kajman_
Profil *
Pokud je rozsah vždy až na poslední úrovni, tak by to mohlo být takto nějak.

select sloupec,
substring_index(sloupec,'.',-1) rozsah,
substring_index('192.168.0.26','.',-1)+0 konec
from tabulka
having
('192.168.0.26' like replace(sloupec,'*','%'))
or
(locate('-',rozsah) and substring_index(rozsah,'-',1)+0<=konec and substring_index(rozsah,'-',-1)+0>=konec)

Pokud ten rozsah může být kdekolik, tak si to doupravte ;-)
souki
Profil
díky moc... říkal jsem si, že to budu muset řešit takhle, ale nemám s prací s řetězci přímo v MySQL moc zkušeností.... díky moc ;)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0