RE: mysql lekérdezés php-ban
Molnar Peter
molnarp at afg.hu
2012. Feb. 3., P, 21:28:46 CET
Hello!
> 1; piros; 1,5,12,13
> 2; kék; 8,9,12
> 3; zöld; 1,7,13
SELECT * FROM szintermek where termekek like '%,13'
Szerintem ez a kovetkezo sort nem talalja meg:
1;piros; 13,15
Erre meg hibas talalatot ad:
1;piros: 1,2,130
>SELECT * FROM szintermek where termekek like '%,1' OR termekek like '1,%'
OR termekek like '%,1,%';
Ez sem jo, szerinte.
Ez meg erre ad hibas talalatot:
1;piros;2,100
meg erre se jo:
1;piros;2,101,102
Szerintem 1 sql utasitassal, ezzel a strukturaval nehezen megoldhato.
Raadasul ha indexelt se nagyon jo teljesitmenyu eredmenyt ad.
Legyen a php kodreszlet ez:
$eredmeny = (mysql_query("SELECT * FROM szintermek where termekek regexp
'13';",$kapcs)) or die(mysql_error());
while ($t=mysql_fetch_array($eredmeny)) {
$tomb=explode(",",$t['termekek']);
if (array_search('13',$tomb)<>false) print "van";
}
Biztos lehet rovidebben is, de ez biztos jo eredmenyt ad.
Udv:
Molnar Peter
http://www.petersoft.hu
További információk a(z) Techinfo levelezőlistáról