Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Mysql wyrażenia regularne
rogeros
post 28.11.2007, 08:42:43
Post #1





Grupa: Zarejestrowani
Postów: 97
Pomógł: 0
Dołączył: 10.04.2002
Skąd: Pruszków

Ostrzeżenie: (10%)
X----


Witajcie w jednej kolumnie w bazie danych mam pewną tabelę która jest przez serialize przerobiona na string.
I tak wpadłem na pomysł żeby zrobić selekce danych już z poziomu bazy danych.
Dlatego mam takie pytanie.

czy za pomocą wyrażeń regularnych w mysql określić
  1. <?php
  2. a:5:{s:14:"TES 32 Dreamer";i:3;s:10:"Solina 800";i:8;s:15:"Tango 780 Sport";i:1;s:18:"Tango 780 Family S";i:10;s:12:"Nieokreslony";i:3;}
  3. ?>





ze wartość Solina 800 musi być większa od 0
czyli coś w stylu "Solina 800";i:(.*?);
i zmienna wyciagnieta musi byc wieksza od zera.

w tym przykladzie solina 800 ma wartosc 8




lub może jest funkcja podobna do explode za pomoca ktorej mógłbym sobie wyciąć co jest za 3-cim srednikiem.

W ogole nie mam pomyslu jak to ugryźć. Może ktoś mnie tu naprowadzi na dobrą drogę smile.gif



Witajcie kombinowałem całą noc smile.gif
I udało mi się rozwiązać problem za pomocą takiego zapytania.

Może komuś na przyszłość się przyda.

  1. SELECT jachty, MID( jachty, LOCATE( 'Solina 800', jachty ) + LENGTH( 'Solina 800' ) +4, 1 ) AS wartosc
  2. FROM `jacht_crm` HAVING wartosc >0



A więc. Chcę wyświetlić wartość dla Solina 800 to:
szukam na jakiej pozycji w stringu znajduje się szukane słowo "Solina 800"
w moim przypadku słowo zaczyna się od 38 znaku w stringu.

mnie interesuje to co się znajduje za po tym stringu a dokladnie po "i:"

dlatego jeśli wiem na której pozycji znajduje się słowo Solina 800 (locate)
jesli wiemy jak długi jest string Solina 800 (length)
i dodamy ta STAŁĄ wartość jaka dzieli nas do wyniku czyli 4 znaki

to uzyskamy interesujace nas dane.


Oczywiscie Solina 800 w moim przypadku to marametr ktory w miare potrzeb jest zmieniany.

Pozdrawiam.


--------------------
Centrale telefoniczne VOIP - www.astrocom.pl
VOIP
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 02:28