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

SQL Tilfældige rækker i en stor tabel (med where-sætning)

Jeg vil gerne give et specifikt svar, men jeg har brug for hjælp til at forstå din tankeproces...

Du starter med at skrive:

Men så fortsætter du med at skrive:

For mig giver sidstnævnte spec ikke meget mening i lyset af den første bemærkning.

Imho, hvad du virkelig ønsker, er, at brugerne har den samme mængde muligheder for at stemme på hver bil. Eller mere præcist at stemme på hver bil i forhold til hver anden bil.

Hvis du antager, at (bil)variablerne er uafhængige, så skal du holde et tælle over, hvor mange gange et valg dukkede op, snarere end hvor mange gange det blev stemt på, og justere din beslutningsproces i overensstemmelse hermed. Det er et matematisk problem, det er ikke så grimt, og det kan så oversættes til SQL på godt og ondt -- jeg vil vove, at det nok bliver værre.

Hvis du antager, som jeg gør, at de ikke er uafhængige, skal du også tage højde for sammenhænge - og gemme, hvor mange gange de også fandt på hinanden. For der er en uendelig lille chance for, at du ikke foretrækker denne Mercedes frem for den Tata, den Xinkai eller den AvtoVAZ. Men givet et valg mellem den samme Mercedes, en BMW, en Porsche og en Ferrari, er beslutningen måske ikke så entydig.

Med andre ord, din specifikation besvarer slet ikke problemet, som du præsenterede det.

Jeg beder i øjeblikket om at være enig i svaret, der blev sendt for to timer siden:vælg dem virkelig tilfældigt, og du vil være tilfreds uden ekstra kode...

Som en sidebemærkning, hvis dine id'er virkelig ikke har nogen huller, skal du generere fire id'er i php eller hvad som helst og hente dem ved hjælp af en in() udmelding. Du bliver ikke mere effektiv end det.



  1. 5 job, der kræver Microsoft Access

  2. Reverse Engineering en datamodel ved hjælp af Oracle SQL Developer

  3. Hvordan finder man nth rank i MySQL?

  4. Hvordan kan jeg rekursivt få det overordnede ID for rækker i denne MySQL-tabel?