Se vuoi che il record risultante sia ordinato in modo casuale , dovresti utilizzare i seguenti codici in base a diversi database.
Ecco una domanda: qual è la necessità di recuperare un record casuale o una riga da un database?
A volte potresti voler visualizzare informazioni casuali come articoli, link, pagine , ecc., al tuo utente.
elenca come array
Se desideri recuperare righe casuali da uno qualsiasi dei database, devi utilizzare alcune query modificate in base ai database.
Se vuoi restituire una riga casuale con MY SQL, usa la seguente sintassi:
SELECT column FROM table ORDER BY RAND () LIMIT 1;
SELECT column FROM table ORDER BY RANDOM () LIMIT 1;
SELECT TOP 1 column FROM table ORDER BY NEWID ();
SELECT column FROM (SELECT column FROM table ORDER BY dbms_random.value) WHERE rownum = 1;
SELECT column RAND () as IDX FROM table ORDER BY IDX FETCH FIRST 1 ROWS ONLY;
Per comprendere concretamente questo concetto vediamo alcuni esempi utilizzando il database MySQL. Consideriamo di avere una tabella creata nel database con i seguenti dati:
Tabella: articoli
ID | Nome dell'elemento | Articolo_Quantità | Prezzo dell'articolo | Data di acquisto |
---|---|---|---|---|
1 | Sapone | 5 | 200 2021-07-08 | |
2 | Dentifricio | 2 | 80 | 2021-07-10 |
3 | Penna | 10 | cinquanta | 2021-07-12 |
4 | Bottiglia | 1 | 250 | 2021-07-13 |
5 | Spazzola | 3 | 90 | 2021-07-15 |
Supponiamo di voler recuperare qualsiasi record casuale dalla tabella degli articoli.
scrivi json nel file python
Scriveremo la query come segue:
mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1;
Potremmo ottenere i seguenti risultati:
ID | Nome dell'elemento | Articolo_Quantità | Prezzo dell'articolo | Data di acquisto |
---|---|---|---|---|
3 | Penna | 10 | venti | 2021-07-12 |
Ora proviamo a eseguire la stessa query ancora una volta.
mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1;
Potremmo ottenere i seguenti risultati:
ID | Nome dell'elemento | Articolo_Quantità | Prezzo dell'articolo | Data di acquisto |
---|---|---|---|---|
5 | Spazzola | 3 | 90 | 2021-07-15 |
Dai risultati di cui sopra, possiamo concludere che otteniamo record diversi come output entrambe le volte anche se abbiamo eseguito la stessa query due volte. La funzione RAND () ha selezionato record casuali entrambe le volte per la stessa query da una singola tabella. Pertanto, anche se eseguiamo nuovamente la stessa query, otterremo ogni volta un output diverso. Esiste una rara possibilità di ottenere lo stesso record consecutivamente utilizzando la funzione RAND ().
Supponiamo ora di voler recuperare tutti i record della tabella in modo casuale.
Per fare ciò, dobbiamo eseguire la seguente query:
sei giunto
mysql> SELECT * FROM items ORDER BY RAND ();
Potremmo ottenere i seguenti risultati:
ID | Nome dell'elemento | Articolo_Quantità | Prezzo dell'articolo | Data di acquisto |
---|---|---|---|---|
4 | Bottiglia | 1 | 250 | 2021-07-13 |
5 | Spazzola | 3 | 90 | 2021-07-15 |
1 | Sapone | 5 | 200 | 2021-07-08 |
2 | Dentifricio | 2 | 80 | 2021-07-10 |
3 | Penna | 10 | cinquanta | 2021-07-12 |
Esiste anche la possibilità di ottenere una diversa disposizione dei record se eseguiamo nuovamente la funzione RAND() sulla tabella dei dipendenti.