Re: [Linux-programlama] MYSQL Sorgusunda istediğim sonucu alamıyorum

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Serdar KÖYLÜ (serdarkoylu@fisek.com.tr)
Date: Mon 06 Dec 2004 - 17:23:27 EET


Selamlar..

> Elimdeki form da arzann durumunu bildiren bir veri
> geliyor.
>
> select * from dict_events where serialNumber='11111'
> and status=$status[0] or status=$status[1] or
> status=$status[2] or status=$status[3] or
> status=$status[4]
>
> Form da sadece status lerden birini iaretlediimde
> doru bilgiyi veriyor. Yani Seri Numarasna gre
> sorguyu altryor. Ancak Bir den fazla seince veri
> tabanndaki kritere uyan tm eventleri ekrana dkyor.
> Bu sorguyu nasl yazmanlym ki sadece girilen seri
> numarasna gre seili statuleri ekrana dktrsn...

Sanırım,

select * from dict_events where serialNumber='11111'
and (status=$status[0] or status=$status[1] or
status=$status[2] or status=$status[3] or
status=$status[4])

işinizi görecektir.

Bu tür kodlar, gereksiz CPU Yükü, gereksiz bellek yükü, gereksiz disk
I/O yükü vs. oluşturur. Bu tür basit sorunlarda dağ gibi birikir,
sonuçta uygulamayı zorlamaya başlar.

Burada sunucuyu bu kadar kastırmak yerine, sadece gerekli olan
status check'i yaptırsanız, daha iyi olur. Bunun için, örneğin, status
için string yerine enum veya int gibi bir veri tipi kullanıp daha sonra
kod içinde sadece seçili status'lar için bir "where part" oluşturabilirsiniz.

$sql = select * from dict_events where serialNumber='11111';
$where = "";
for ($n == 0; $n < 5; $n++) {
. if ($status[$n])
. $where .= "or status=$n ";
}

if ($where != "") {
. $where = " and (" . substr($where, 2) . ")";
. $sql .= $where;
}

$sql .= ";"

Gibi bir şey iyi olabilir. Yukarıdaki kod sadece örnek bir algoritmayı
gösteriyor, uygulamada ne çıkar bilemem :(

Saygı ve sevgiler..
  
        

_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.