sql >> Database teknologi >  >> RDS >> Mysql

Hvordan kan jeg få en jævn fordeling ved hjælp af WHERE id IN(1,2,3,4)

Ved at indstille rækkenummeret med variabler og derefter filtrere det resultat, så det kun viser række 1-3, burde det fungere

SET @last_objectId = 0;
SET @count_objectId = 0;
SELECT id, name, image FROM (
SELECT
 user.id,
 user.name,
 user.image,
 @count_objectId := IF(@last_objectId = rating.objectId, @count_objectId, 0) + 1 AS rating_row_number,
 @last_objectId := rating.objectId
FROM users
LEFT JOIN ratings ON (ratings.userid = user.id)
WHERE
 rating.rating > 0 AND
 rating.objectId IN (1,2,3,4)
ORDER BY rating.objectId
) AS subquery WHERE rating_row_number <= 3;



  1. Slet duplikerede tags MySQL

  2. Sådan tilføjes automatisk stigningskolonne i eksisterende tabel i MySQL

  3. Oracle Sequence-værdier er ikke bestilt

  4. ASP.NET/Identity Error:Enhedstypen ApplicationUser er ikke en del af modellen for den aktuelle kontekst