Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22

Discussione: alternativa al random

  1. #1

    alternativa al random

    domanda a cui no ho trovato risposta sul web

    sul mio sito scelgo tramite select 3 righe in modo casuale con la funzione random()
    il problema è che con più di 100mila righe mi diventa lento.
    l'alternativa è contare il nuemro delle righe, creare 3 nuemri casuali in questo range e scegliere le 3 righe

    il mio problema è che l amia select no prende tutte le righe

    faccio un esempio

    carote
    patate
    pizza
    fagioli
    bibita

    la mia select deve prendere 2 verdure a caso, ma solo verdure. io conto le righe (5) poi se il nuemro casuale mi da 3 (pizza) non va bene perche non è una verdura;
    dovrei magari prendere la terza riga della select 1 carote, 2 patate, (piza no), 3 fagioli

    ma scegliere la terza riga di una select non so come si faccia

    spero di essere stato esplicativo; chiedo aiuto prechè ho una pagina che è diventata lentissima per colpa di queta random
    grazie infinite
    www.moscabianca.biz- riusciremo a competere con i colossi dell'annuncio? un sogno che arriva dal basso

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    70
    Ora la tua funzione random() come funziona?

  3. #3
    non puoi usare qualche tecnica di autocompletamento? in questo modo dovresti limitare almeno il problema del caricare 100mila righe.

  4. #4

    random no grazie

    non sto a spiegare la random perche come detto il random (il o la) di 100mila righe è lentissima, provare per credere
    provo a rispiegare il quesito

    rimpicciolisco l'insieme a 5 solo per capirci

    ho 5 palline rosse, con id non da 1 a 5, ma ad es 2-4-5-7-88
    queste palline le prelevo con una select in un insieme da 100mila palline colorate

    io vorrei prendere 2 di queste 5 palline rosse a caso
    sarebbe semplicisismo fare una select cosi

    $selectpalline=" Select * from palline" .
    " where colorepallina= rosso ORDER BY RAND() limit 0,2 ";

    il mio problema è che con una tabella palline di 100mila righe la funzione rand() è lentissima

    lo dico io per esperienza e lo dice tutto il web

    se dovessi prendere 2 palline colorate a caso sarebbe facile

    conterei le palline (es 100mila) poi estrarrei 2 numeri casuali da 1 a 100 mila e prenderei quegli id
    in questo caso la funzione di estrazione numero casuale mt_rand() è molto veloce


    ma nel mi ocaso come faccio, nel web non trovo niente e io non ci arrivo



    ma non potendo prendere tutte le palline
    www.moscabianca.biz- riusciremo a competere con i colossi dell'annuncio? un sogno che arriva dal basso

  5. #5
    Continui a dire che la select random su 100K righe è lentissimo. Credo che si sia capito.

    Piuttosto, perchè non posti la struttura della tabella e l'attuale query che utilizzi così si ragiona su quello?

  6. #6

    no random

    tabella "pallina":
    id_pallina
    colore_pallina

    contenuti
    id_pallina colore_pallina
    1 rosso
    2 rosso
    3 verde
    4 rosso
    5 rosso
    6 blu
    7 rosso
    ....

    la mia select faceva " select * from pallina where colore_pallina= rosso order by random () limit 0,2"

    io vorrei fare la stessa cosa senza il random()
    quindi prendere due palline rosse a caso
    www.moscabianca.biz- riusciremo a competere con i colossi dell'annuncio? un sogno che arriva dal basso

  7. #7

    alternativa al random

    ...
    non trovo soluzione
    www.moscabianca.biz- riusciremo a competere con i colossi dell'annuncio? un sogno che arriva dal basso

  8. #8

    mt_rand

    l'unica soluzione è questa

    con count() conto le righe es 100mila

    poi con mt_rand prendo un numeroa caso es 4579

    poi faccio la select come where uguale al count

    select * from palline where..... limit ( numero di mt_rand) ,1

    se mi servono 4 numeri faccio 4 volte questo processo

    a okkio mi sembre macchinoso ma no trovo di meglio
    www.moscabianca.biz- riusciremo a competere con i colossi dell'annuncio? un sogno che arriva dal basso

  9. #9
    In pratica a te servono N palline di un dato colore, estratte a random, ma senza utilizzare la funzione RAND() di Mysql?

  10. #10

    no random

    esatto
    forse bastava dire cosi
    www.moscabianca.biz- riusciremo a competere con i colossi dell'annuncio? un sogno che arriva dal basso

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.