• 30-05-2009, 12:56:15
    #1
    Merhabalar arkadaşlar.

    1 tablomda yaklaşık 10k veri var. Yeni bir alan oluşturdum.
    Bu alana ben sıra bilgisi atayacağım bu bilgide;

    kaçıncı kayıt olduğuna bakacak sonra bulduğu değeri (mod 4)'e göre bir değer bulup içine atayacak

    SQL Kodu:

    set @sayi=0;
    select @sayi:=((count(id)+1) mod 5) as sayi from hatlar;
    update hatlar set sira=@sayi
    şöyle 1 kod kullandım hepsine en son kaydın değerini atadı.

    sitede ve internette bi araştırma yaptım ama sqlde döngü oluşturmayla ilgili hiç bişey bulamadım...

    ben bunu illaki PHP, ASP gibi bir dil kullanarak mı yapıcam?
    yok mudur bunun SQLde kolayı?

    Biraz Karışık anlattım umarım anlarsınız kafam çok karıştı saatlerdir uğraşıyorum...
  • 30-05-2009, 16:43:36
    #2
    MySQL de işler nasıl yürüyor tam bilmiyorum ama

    DECLARE
         CURSOR c_sayi IS
        select ((count(id)+1) mod 5) as id from hatlar;
         c_sayi_rec c_sayi%ROWTYPE;
     BEGIN
         OPEN c_sayi;
         LOOP
            FETCH c_sayi INTO c_sayi_rec;
           EXIT WHEN c_sayi_rec%NOTFOUND;
         update hatlar set sira = c_sayi_rec.id;
        END LOOP;
        CLOSE c_sayi;
     END;
    Şu şekilde Cursor & Loop ile yapabilirsin.
    Dene bakalım olacakmı?