sql >> Databasteknik >  >> RDS >> Mysql

Hibernate Criteria API:få n slumpmässiga rader

Det är faktiskt möjligt med kriterier och lite justeringar. Så här gör du:

Criteria criteria = session.createCriteria(Table.class);
criteria.add(Restrictions.eq("fieldVariable", anyValue));
criteria.add(Restrictions.sqlRestriction("1=1 order by rand()"));
criteria.setMaxResults(5);
return criteria.list();

alla Restrictions.sqlRestriction kommer att lägga till nyckelordet 'and'; så för att omintetgöra dess effekt ska vi lägga till ett dummy-villkor och injicera vår rand()-funktion.



  1. Tidsstämpel med en millisekunds precision:Hur man sparar dem i MySQL

  2. Oracle sql handledning:Grundläggande SQL-sats

  3. Räkna antalet distinkta rader för flera värden

  4. 6 problemfrågor som kraftigt saktar ner din databas