mysql kullanıcı değişkenleri.

Bir işlem için mysql ile kullanıcı dğeişkeni tanımlamam gerekti. işine gereken olur diye kodu buraya yazıyorum.


SELECT * FROM `sozler`
WHERE (IF(kat != @si, @row:=0, @row:=@row+1)) < 4
AND (@si := kat) IS NOT NULL
LIMIT 0,40

Yaptığı işlem: bir tabloda kategori numaraları var (kat), tablodan 40 tane veri çekecek, fakat her kategoriye ait en fazla 4 kayıt çekecek. Bunu yapmak için SUB QUERY veya GROUP kullanmış örnekler gördüm ama iç içe query kullanmayı sevmiyorum, zaten çok fazla kayıt olunca yavaşlık farkediliyor.

Yukarıdaki örneğin nispeten daha hızlı çalışacağını düşünüyorum.

önce bunu yapıyor:

(IF(kat != @si, @row:=0, @row:=@row+1)) < 4


Sonra bu satırı işleyip sonraki satıra geçiyor.


AND (@si := kat) IS NOT NULL

Henüz yavaşlığını görmedim ama fikirlerinizi yazarsanız sevinirim.

Her programcı birgün Php yi tadacaktır
2013-03-08 13:34:17

Php

alicilinAli Fırat Güler

Oldukça mantıklı hocam. Sanırım bende bu yöntemi kullanmaya başlamalıyım :)

2013-03-08 19:27:14

Php

TeaMTurkeRŞenol TÜRKER

hımm forum kategorileri içindeki konuları listelerken kullanabilirmiyim acaba  bunu hocalarım smiley

2013-12-18 19:05:03

phpkodlari.com © 2009 Herkes Php öğrenecek
Eglence ve Oyun: Gamikro