Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Jak napisać zapytanie dla danych zserializowanych
Walian
post 17.08.2009, 18:51:57
Post #1





Grupa: Zarejestrowani
Postów: 124
Pomógł: 1
Dołączył: 13.07.2009

Ostrzeżenie: (0%)
-----


Witam.

Przypuśćmy, że mam taką oto tabelkę:
Kod
| pole1 | pole2 | pole 3 | pole_z_danymi_zserializowanymi |


Pole "pole_z_danymi_zserializowanymi" ma powiedzmy takie zmienne i wartości:
Kod
zmienna1|s:9:"127.0.0.4";zmienna2|b:1;zmienna3|b:1;zmienna4|i:1250520156;zmienna5|s:4:"ktos";


Do zapytania "doklejam" np. takie zmienne:

$zmienna1 = '127.0.0.3';
$zmienna5 = 'ktos';

I teraz chciałbym wykonać zapytanie, które zwróci mi zawartość pola "pole1", gdzie:
1.) "zmienna5" ma wartość równą zmiennej "$zmienna5"
2.) "zmienna1" ma wartość inną niż zmienna "$zmienna1"

PS. W zmiennej "zmienna1" oraz "$zmienna1" zawsze będzie się znajdował jakiś adres IP, ale dowolny więc również zawartość zmiennej "zmienna1" będzie miało zmienną długość. Z kolei w zmiennej "zmienna5" oraz $zmienna5 zawsze będzie nazwa użytkownika, również dowolnej długości.

Na razie moje zapytanie uwzględnia tylko pierwszy warunek:
Kod
$query = "SELECT * FROM ".$tabela." WHERE pole_z_danymi_zserializowanymi REGEXP '(zmienna5\|s\:)*(\:\"".$zmienna5."\")'";


Jak skonstruować zapytanie by uwzględniło oba warunki?
Wiem, że mógłbym rozbić to na 2 zapytania, ale zapewne da się to zrobić w jednym.

Cały bajer polega na tym, że zmienne "zmienna1" i "zmienna5" mogą się znajdować w polu "pole_z_danymi_zserializowanymi" w odwrotnej kolejności smile.gif

Ten post edytował Walian 17.08.2009, 18:53:28
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 - 15:11