sql >> Databáze >  >> RDS >> Mysql

Náhodný výběr řádků přes JPA

Pouze funkce definované ve specifikaci jsou zaručeny, že budou podporovány všemi poskytovateli JPA a RAND nebo RANDOM nejsou. Takže si nemyslím, že to můžete udělat v JPQL.

Bylo by to však možné v HQL (pořadí podle klauzule v HQL se předává do databáze, takže můžete použít jakoukoli funkci):

String query = "SELECT o.id FROM Order o ORDER BY random()";
Query q = em.createQuery(query);
q.setMaxResults(5);

Ale opakuji:

  1. Toto nemusí fungovat s jinou databází.
  2. Toto nemusí fungovat s jiným poskytovatelem JPA.


  1. Neplatná kombinace porovnávání (utf8mb4_unicode_ci,IMPLICIT) a (utf8mb4_general_ci,IMPLICIT) pro operaci '='

  2. MySQL Rollback Query

  3. Jak zkombinovat výsledky dvou dotazů v SQL

  4. Jak mohu vybrat řádky v MySQL počínaje daným číslem řádku?