sql >> Databasteknik >  >> RDS >> Mysql

MySql randomisera de sista 10 raderna

Förutsatt att time är den tidpunkt då posten infogades, detta ger dig de senaste 10 raderna från tabellen:

SELECT * FROM `table` WHERE `amount` > `amount2` AND `code` = '$code'
  ORDER BY `time` DESC LIMIT 10

Nu kan du använda resultatet som en tillfällig tabell, sortera det slumpmässigt (eftersom det bara är 10 rader) och returnera en rad:

SELECT * FROM (
  SELECT * FROM `table` WHERE `amount` > `amount2` AND `code` = '$code'
    ORDER BY `time` DESC LIMIT 10
) AS temptable 
ORDER BY RAND()
LIMIT 1


  1. Varför anses det vara dålig praxis att använda markörer i SQL Server?

  2. Lära 2:Kan inte välja entitet genom identifieringsvariabler utan att välja minst ett rotentitetsalias

  3. Migrera en Oracle-databas till MySQL på AWS, del 2

  4. Fel vid kartläggning av postgres-matriser i Spring JPA