Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Random

  1. #1
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080

    Random

    Come posso selezionare una riga a random dal db?

    Sonia

  2. #2
    Ho provato sul database Northwind di sql

    codice:
    SELECT     
      *
    FROM         
      Categories
    WHERE 
      categoryid = Cast(round(rand()* (SELECT COUNT(*) FROM  Categories),0) AS int)
    Il trucco sta nella condizione di WHERE calcolando un id casuale sulla chiave univoca

    Fammi sapere
    Ciao
    K
    Kalman

  3. #3
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    e se l'id non c'è?
    Anche perchè la mia where sarà:
    where miocampo=pippo

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da Sonikag
    e se l'id non c'è?
    Anche perchè la mia where sarà:
    where miocampo=pippo
    Cheh!!!! tabella senza chiave?
    Pietro

  5. #5
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    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?

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    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

  7. #7
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Come faccio ad associare ad un vettore il risultato di questa query:
    SELECT *
    FROM Prod
    Where (not(conf3='0'));

    Cosa intendi per: (chiave1 + chiaven)?

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente 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)?
    Gentilissima Sonia, va bene che è primavera 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

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 © 2026 vBulletin Solutions, Inc. All rights reserved.