Select random data con una query nidificata (subquery)

Ho una tabella di un database mysql con moltissimi dati. Vorrei riuscire a selezionare soli 4 records in modo casuale da un precedente sotto insieme di questa tabella.

Mi spiego meglio, quello di cui ho bisogno è una query che recuperi dapprima 1000 records dalla tabella, e successivamente selezioni soli 4 records in modo casuale da questi 1000 estratti prima, ed ovviamente mi restituisca questi 4 records come risultato (resultset).

Penso che possa essere fatto con una query nidificata (subquery) ma non ho bene idea di come farlo. Per favore potete aiutami con qualche codice di esempio, grazie.

In Corso 2
MySql 04-05-2019 1 Risposta 1105 Visite +1

Risposte ( 1 approvate )

  1. Giacomo Barrile
    0
    04-05-2019 09:38:06
    Rispondi

    La seguente query dovrebbe andar bene per fare quello che chiedi:

    SELECT * FROM
    (
      SELECT * FROM My_Table
      WHERE some_conditions
      LIMIT 1000
    ) 
    AS Alias_Name
    ORDER BY RAND()
    LIMIT 4;

    dove ovviamente quella tra parentesi è una subquery o query annidata se preferisci.

     

Rispondi

Per poter rispondere a questa domanda, devi essere registrato e loggato sul sito, dopodichè compila il box sottostante cercando di essere il più chiaro ed esauriente possibile, la tua risposta potrebbe essere la soluzione che l'utente cerca ed essere contrassegnata come migliore, consentendoti così di ottenere punti ed autorevolezza.

Fabrizio Colessi

Fabrizio Colessi

Autore di questa domanda

 Domanda Precedente

 Elenco Domande 

Domanda Successiva