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