Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di henry78
    Registrato dal
    May 2001
    Messaggi
    1,264

    Oridinare record per campo.. ma random..

    Ciao a tutti


    Ho un campo numerico "rating"... vorrei ordinare i record mettendo in testa quelli con rating più alto, ma in modo casuale - quindi non sempre con lo stesso record in testa...

    ho provato così ma niente:

    ORDER BY rand(), rating DESC

    così:

    ORDER BY rating, rand() DESC

    MA niente.... è possibile farlo? Sembra così banale...

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    codice:
    select * from (
    select * from tabella order by rating desc limit 5) as tab
    order by rand()

  3. #3
    Utente di HTML.it L'avatar di henry78
    Registrato dal
    May 2001
    Messaggi
    1,264
    Originariamente inviato da nicola75ss
    codice:
    select * from (
    select * from tabella order by rating desc limit 5) as tab
    order by rand()
    ho provato così ma non vengono comunque ordinati per il campo rating


    $query2 = "select * from (SELECT * FROM tab_uno WHERE (data <= '$data') AND (rating >= 1) GROUP BY id ORDER BY rating DESC LIMIT 30) as tab order by rand()";

    c'e' qualcosa di sbagliato?

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    A cosa serve quel group by id?

  5. #5
    Utente di HTML.it L'avatar di henry78
    Registrato dal
    May 2001
    Messaggi
    1,264
    Perchè lo stesso id, può inserire più offerte in una singola data; io voglio che l'id esca una volta solo..

    comunque anche senza GROUP BY... non mi ordina la query per rating..

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da henry78
    comunque anche senza GROUP BY... non mi ordina la query per rating..
    La query ordina in maniera casuale tra i 30 con rating più alto.

  7. #7
    Utente di HTML.it L'avatar di henry78
    Registrato dal
    May 2001
    Messaggi
    1,264
    Originariamente inviato da nicola75ss
    La query ordina in maniera casuale tra i 30 con rating più alto.

    non riesco a farla funzionare...

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Se non mi spieghi esattamente cosa non funziona è difficile aiutarti.
    La query interna con cui estrai i 30 record con rating maggiore ti restituisce ciò che ti aspetti?
    Quella esterna non fa altro che prendere tali record e restituirli in ordine casuale.

  9. #9
    A me così funziona correttamente:

    SELECT * FROM tabella ORDER BY rating DESC, RAND()

  10. #10
    Utente di HTML.it L'avatar di henry78
    Registrato dal
    May 2001
    Messaggi
    1,264
    Originariamente inviato da filippo.toso
    A me così funziona correttamente:
    Perfetto, è vero, basta l'ORDER BY :-)))

    e' una query su tre tabelle piuttosto incasinata.. l'ho riscritta e va! Grazie per l'aiuto.

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.