sql >> Database >  >> RDS >> Mysql

MySQL:Shuffle een beperkt zoekresultaat?

U kunt rand() . gebruiken , maar de uitvoering is verschrikkelijk

select * from users order by rand() limit 5; <-- slow

Ik zou willen voorstellen om de lijst met alle gebruikers-ID's op te slaan in een serialize-array en in de cache op te slaan in een schijfbestand. (periodiek bijwerken)

U kunt de serialisatie dus weer opheffen met PHP en PHP array_rand gebruiken om 5 willekeurige gebruikers te kiezen.

Om de volledige informatie op te halen, kunt u

select * from users where user_id in(...); <-- very fast


  1. Valideer url voor meertalig - Japans langauga

  2. PDO bereid een verklaring voor en match tegen in booleaanse modus

  3. SQL:selecteer Top 3 records + som van hoeveelheid

  4. Fout bij het instellen van n_distinct met behulp van een plpgsql-variabele