sql >> Database teknologi >  >> RDS >> Mysql

Sådan bestiller du resultater af en forespørgsel tilfældigt og vælger tilfældige rækker. (MySQL)

Hvis du ikke har noget imod at ofre kompleksitet på indsæt/opdater/slet-operationerne for hastighed på valget, kan du altid tilføje et sekvensnummer og sørge for, at det vedligeholdes på indsæt/opdater/slet, og når du foretager et valg, skal du blot vælge på et eller flere tilfældige tal inden for dette område. Hvis kolonnen "sekvens" er indekseret, tror jeg, det er omtrent lige så hurtigt, som du kan få det.

Et alternativ er "shuffling". Tilføj en sekvenskolonne, indsæt tilfældige værdier i denne kolonne, og når du vælger poster, skal du sortere efter sekvenskolonnen og opdatere de valgte postsekvenser til nye tilfældige værdier. Opdateringen bør kun påvirke de poster, du har hentet, så bør ikke være for dyr ... men det kan være værd at køre nogle tests mod dit datasæt.

Det kan være en ret ond ting at sige, men jeg siger det alligevel ... er der nogensinde behov for at vise 'tilfældige' data? hvis du prøver at vise tilfældige poster, gør du muligvis noget forkert.

Tænk på Amazon ... viser de tilfældige produkter, eller viser de populære produkter og 'ting, som andre mennesker købte, da de så på dette'. Giver SO dig en liste over tilfældige spørgsmål til højre for her, eller en liste over relaterede? Bare lidt stof til eftertanke.



  1. Hvordan udløser man mysql-begivenhed efter en tidsperiode?

  2. Tom database i MySQL og PHP?

  3. Brug af en variabel som kolonnenavn i en mysql-forespørgsel

  4. Lær at udføre produktanalyse med SQL Server fuldtekstsøgning. Del 2