![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 422 Pomógł: 0 Dołączył: 14.12.2005 Skąd: Wałbrzych Ostrzeżenie: (0%) ![]() ![]() |
Czy jest możliwość zrobienia takiego zapytania, który porówna ciąg do wyrażeń regularnych w bazie. Czyli baza zawiera wyrażenia regularne, ja podaje tekst i on szuka wyrażenia w bazie, które pasuje do podanego zapytania.
Dokładniej nie chcę tego wykorzystać w PHP tylko w języku, który nie obsługuje RegExp'ów. Poza tym po co miałbym pobierać najpierw całą tabelę do skryptu, a potem przerabiać ją wyrażeniami. Mam nadzieję, że MySQL posiada taką możliwość. Pozdrawiam! Ten post edytował Balon 28.05.2008, 14:16:23 |
|
|
![]()
Post
#2
|
|
Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
Nie wiem czy Cię dobrze zrozumiałem. Chodzi Ci o wyrażenia regularne w MySQL?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 422 Pomógł: 0 Dołączył: 14.12.2005 Skąd: Wałbrzych Ostrzeżenie: (0%) ![]() ![]() |
Średnio..
Wytłumaczę to tak. Potrzebuję zrobić tabelę ze zbanowanymi adresami IP. Chciałbym je pisać jako wyrażenia regularne, aby stworzyć w ten sposób swobodę banowania określonych zakresów IP. Dlatego chciałem wykorzystać bazę MySQL tak, abym podawał jej adres IP osoby, a baza porówna adres IP do wyrażeń regularnych w bazie. Teraz zrozumiałeś mój cel? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 139 Pomógł: 10 Dołączył: 6.07.2007 Skąd: opole Ostrzeżenie: (0%) ![]() ![]() |
Wydaje mi się że lepsze do tego celu (i szybsze) będzie stosowanie zakresów w postaci INT i korzystanie z funkcji mysql INET_ATON, INET_NTOA oraz odpowiedników PHP ip2long i long2ip
EDIT sorry ale dopiero teraz przeczytałem, że nie chcesz w PHP no ale tak czy siak lepiej będzie jak napiszesz w tym języku funkcje do przekształcania adresów niż uruchamiać wyrażenia regularne Ten post edytował tomeksobczak 28.05.2008, 14:28:46 |
|
|
![]()
Post
#5
|
|
Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
Może coś takiego. W bazie trzymasz np.
Kod 212.([0-9]){1,3}.132.127 212.134.([0-9]){1,3}.97
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 422 Pomógł: 0 Dołączył: 14.12.2005 Skąd: Wałbrzych Ostrzeżenie: (0%) ![]() ![]() |
Niestety tak jak napisałem, nie korzystam w tym przypadku z PHP tylko języka, który nie obsługuje wyrażeń regularnych. Dlatego wolałbym, żeby baza zrobiła to zamiast skrypt.
ps. w sumie to forum o php, ale temat dotyczy bazy MySQL. niestety jestem zmuszony zrobić coś w innym języku niż mój kochany PHP (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Struktura tabeli:
Kod +----------+------------+----------+--------- | ban_id | ban_from | ban_to | (...) +----------+------------+----------+--------- | 1 | 12345 | 22222 | | 2 | 3443 | 4000 | | 3 | 233211 | 321234 | (...) ban_from i ban_to typu INTEGER Do tego znajomość: INET_ATON, INET_NTOA oraz BETWEEN |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 156 Pomógł: 2 Dołączył: 9.09.2006 Skąd: Londyn/Gdynia Ostrzeżenie: (0%) ![]() ![]() |
Polecam zaposnac sie z :
http://dev.mysql.com/doc/refman/5.0/en/str...operator_regexp z ta wiedza do rozwiazania juz niedaleko:) Pozdrawiam |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.09.2025 - 12:13 |