Come posso selezionare una riga a random dal db?
Sonia
Come posso selezionare una riga a random dal db?
Sonia
Ho provato sul database Northwind di sql
Il trucco sta nella condizione di WHERE calcolando un id casuale sulla chiave univocacodice:SELECT * FROM Categories WHERE categoryid = Cast(round(rand()* (SELECT COUNT(*) FROM Categories),0) AS int)
Fammi sapere
Ciao
K
Kalman
e se l'id non c'è?
Anche perchè la mia where sarà:
where miocampo=pippo
Cheh!!!! tabella senza chiave?Originariamente inviato da Sonikag
e se l'id non c'è?
Anche perchè la mia where sarà:
where miocampo=pippo![]()
Pietro
Uha ha ah ah! no mi sono espressa male...
Intendevo dire: se il numero random che mi viene restituito non coincide con nessuna chiave che succede?
Originariamente inviato da Sonikag
Uha ha ah ah! no mi sono espressa male...
Intendevo dire: se il numero random che mi viene restituito non coincide con nessuna chiave che succede?Access lo permette
, ma, alcuni programmi, giustamente si rifiutano di prendere in considerazione tabelle senza chiave
![]()
Non so se esista un modo migliore, ma, visto che non lo conosco, io farei così:
1) riempio un vettore con la chiave o le chiavi (chiave1 + chiaven)
2) mi ricavo un numero casuale compreso tra 0 e n-1 (n = dimensione) vettore.
3) la chiave della tabella è naturalmente vettore[numero_casuale_trovato]
4) applico SELECT * FROM TABELLA WHERE CHIAVE = VETTORE[NUMERO_CASUALE_TROVATO]
E se voglio estrarre 10 record casuali tutti diversi???![]()
![]()
Pietro
Come faccio ad associare ad un vettore il risultato di questa query:
SELECT *
FROM Prod
Where (not(conf3='0'));
Cosa intendi per: (chiave1 + chiaven)?
Gentilissima Sonia, va bene che è primaveraOriginariamente inviato da Sonikag
Come faccio ad associare ad un vettore il risultato di questa query:
SELECT *
FROM Prod
Where (not(conf3='0'));
Cosa intendi per: (chiave1 + chiaven)?ma...
Io posso avere una tabella con tre chiavi, magari di tipo testo, chiave1, chiave2, chiave3
riempio il vettore con:
SELECT (CHIAVE1 + "_" + CHIAVE2 + "_" + CHIAVE3) AS CHIAVE FROM TABELLA.
se ottengo un vettore con 100 elementi, è vacile ricavare un valore casuale tra 0 e 99 compresi. Se trovo, per esempio il numero casuale 50, la mia chiave di ricerca sulla tabella è (stringa) chiave = vettore[50], perciò, il record è
SELECT * FROM TABELLA WHERE (CHIAVE1 + "_" + CHIAVE2 + "_" + CHIAVE3) = ****
Capito?![]()
![]()
Pietro