• 06-10-2023, 00:00:07
    #1
    Merhabalar, sql ile alakalı bir problemim var.

    alanlarım şu şekilde
    id user_id sayısal_veri tarih

    bu kayıtlarda aynı user_id 'ye kayıtlı yüzlerce kayıtta olabiliyor çok az kayıtta olabiliyor.

    ben her user_id için aynı tarihli maximum 10 kayıt çekmesini istiyorum.
    (mesela 12.02.2023 tarihli 15 nolu user e kayıtlı 30 kaydın ilk 10'nunu alacak.
    13.02.2023 tarihli 15 nolu userin 2 kaydı varsa onları getirecek.
    diğer userler içinde aynı durum geçerli.
    yani aynı tarihte bir üye için sadece 10 kayıt çekmesi gerekiyor.
    )


    sanırım derdimi anlatabilmişimdir.
  • 06-10-2023, 00:01:38
    #2
    Kesshh adlı üyeden alıntı: mesajı görüntüle
    Merhabalar, sql ile alakalı bir problemim var.

    alanlarım şu şekilde
    id user_id sayısal_veri tarih

    bu kayıtlarda aynı user_id 'ye kayıtlı yüzlerce kayıtta olabiliyor çok az kayıtta olabiliyor.

    ben her user_id için aynı tarihli maximum 10 kayıt çekmesini istiyorum.
    (mesela 12.02.2023 tarihli 15 nolu user e kayıtlı 30 kaydın ilk 10'nunu alacak.
    13.02.2023 tarihli 15 nolu userin 2 kaydı varsa onları getirecek.
    diğer userler içinde aynı durum geçerli.
    yani aynı tarihte bir üye için sadece 10 kayıt çekmesi gerekiyor.
    )


    sanırım derdimi anlatabilmişimdir.
    ChatGPT'ye sormayı denediniz mi hocam?
  • 06-10-2023, 00:02:04
    #3
    rufiqcavadov adlı üyeden alıntı: mesajı görüntüle
    ChatGPT'ye sormayı denediniz mi hocam?
    denemedim vallaha hocam. bi bakayım.
  • 06-10-2023, 00:03:02
    #4
    Kesshh adlı üyeden alıntı: mesajı görüntüle
    denemedim vallaha hocam. bi bakayım.
    İngilizce sormayı deneyin bir de.
  • 06-10-2023, 00:04:54
    #5
    Kesshh adlı üyeden alıntı: mesajı görüntüle
    Merhabalar, sql ile alakalı bir problemim var.

    alanlarım şu şekilde
    id user_id sayısal_veri tarih

    bu kayıtlarda aynı user_id 'ye kayıtlı yüzlerce kayıtta olabiliyor çok az kayıtta olabiliyor.

    ben her user_id için aynı tarihli maximum 10 kayıt çekmesini istiyorum.
    (mesela 12.02.2023 tarihli 15 nolu user e kayıtlı 30 kaydın ilk 10'nunu alacak.
    13.02.2023 tarihli 15 nolu userin 2 kaydı varsa onları getirecek.
    diğer userler içinde aynı durum geçerli.
    yani aynı tarihte bir üye için sadece 10 kayıt çekmesi gerekiyor.
    )


    sanırım derdimi anlatabilmişimdir.
    $sql = "SELECT id, user_id, sayisal_veri, tarih FROM kayitlar WHERE tarih = ? ORDER BY user_id, id LIMIT 10"; $stmt = $conn->prepare($sql); 
    $stmt->bind_param("s", $secilen_tarih);
    $stmt->execute();
     $result = $stmt->get_result();
     if ($result->num_rows > 0) {
        while ($row = $result->fetch_assoc()) { 
           echo "ID: " . $row["id"] . " | User ID: " . $row["user_id"] . " | Sayısal Veri: " . $row["sayisal_veri"] . " | Tarih: " . $row["tarih"] . "<br>";    } 
    } else {
        echo "Sonuç bulunamadı."; }
  • 06-10-2023, 20:49:04
    #6
    arama terimi

    ROW_NUMBER() OVER( PARTITION BY ....