Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: MYSQL i wyrażenia regularne
Forum PHP.pl > Forum > Bazy danych > MySQL
Indeo
Wiem że można używać wyrażeń regularnych przy filtrowaniu danych np:

select symb_polacz,komentarz from polaczenia where komentarz rlike '[0-9]{3}/[0-9]{3}'

zwróciłoby np:
123/432 | 'Wodomierz wsprzezony z 678/321'
567/352 | 'sprzezony z 456/091, nie dzownic'

A w jaki sposób można wyłuskać to dopasowane wyrażenie, tak żeby np z ostatniego wiersza wybrać samą wartość 456/091 questionmark.gif


Prosze o pomoc
Sh4dow
moze to ci pomoze Dokumentacja Mysql
Indeo
No właśnie z tego co szukałem to z wyrażeniami można robić wszystko w zakresie kryteriów (jeśli spełnia to 1, nie spełnia 0) ale czy da się w ogóle przechwycić takie dapasowanie nie angażując php ?
Sh4dow
regexp dziala jedynie jako operator warunkowy (ale ładnie brzmi, jesli tak sie to nazywa) Nie mozna wyciagnac z niego nic. Chyba ze jakimis trikami, ale nie podejzewam.

A moze dla takich rekordow jak ten dasz poprostu dodatkowa kolumne łaczaca ?
Indeo
Problem w tym że baza jest prowadzona przez bardzo stary program a pole jest tekstowe i jak to w przypadku pól tekstowych z braku innych w nich pisze sie różne ważne informacje. Potem ktoś chce żeby je wykorzystac - i tu bez REGEXP ani rusz. Oczywiście że można w tabeli dodać nowa kolumne do której możnaby po prostu przypisać dane ale nie chce mi sie robić tego w 15 tys rekordów skoro mógłbym wartości w tej nowej kolumnie przypisac wprost jednym zapytaniem wpisując do niej wynik dopasowania do wyrażenia regularnego smile.gif
Ale wyrażenia tak jak mówisz pozwalają jedynie sprawdzać czy jest /nie jest spełniony warunek.

Tak byłem po prostu ciekawy smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.