sql >> Database >  >> RDS >> Mysql

Hoe de resultaten van een zoekopdracht willekeurig te bestellen en willekeurige rijen te selecteren. (MySQL)

Als u het niet erg vindt om complexiteit op te offeren bij het invoegen/bijwerken/verwijderen voor snelheid bij het selecteren, kunt u altijd een volgnummer toevoegen en ervoor zorgen dat het behouden blijft bij het invoegen/bijwerken/verwijderen, en wanneer u een selectie uitvoert, selecteert u gewoon op een of meer willekeurige getallen binnen dit bereik. Als de kolom 'volgorde' is geïndexeerd, denk ik dat dat ongeveer net zo snel gaat als je kunt krijgen.

Een alternatief is "shuffelen". Voeg een reekskolom toe, voeg willekeurige waarden in deze kolom in, en wanneer u records selecteert, sorteert u op de reekskolom en werkt u de geselecteerde recordreeksen bij naar nieuwe willekeurige waarden. De update zou alleen van invloed moeten zijn op de records die u hebt opgehaald, dus zou niet te duur moeten zijn ... maar het kan de moeite waard zijn om wat tests uit te voeren op uw dataset.

Dit is misschien een nogal kwalijke zaak om te zeggen, maar ik zeg het toch ... is het ooit nodig om 'willekeurige' gegevens weer te geven? als je willekeurige records probeert weer te geven, doe je misschien iets verkeerd.

Denk aan Amazon ... tonen ze willekeurige producten, of tonen ze populaire, en 'dingen die andere mensen kochten toen ze ernaar keken'. Geeft SO je een lijst met willekeurige vragen rechts van hier, of een lijst met gerelateerde vragen? Gewoon wat stof tot nadenken.



  1. Fix Toegang geweigerd voor gebruiker 'root'@'localhost' voor phpMyAdmin

  2. JDBC MySql-verbindingspoolingpraktijken om een ​​uitgeputte verbindingspool te voorkomen

  3. Hoe de UTF8-tekenset in Oracle configureren?

  4. Simuleer ORDER BY in SQLite UPDATE om de uniciteitsbeperking aan te pakken