Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak mogę uzyskać równomierną dystrybucję za pomocą WHERE id IN(1,2,3,4)

Ustawiając numer wiersza za pomocą zmiennych, a następnie filtrując wynik, aby pokazać tylko wiersz 1-3, powinien działać

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę przesłać poszczególne wiersze CSV do różnych tabel w PHP?

  2. Łączenie formularza php z bazą danych

  3. Mysql wybierz z Gdzie i domyślnie, jeśli warunek nie jest obecny

  4. Czy wyzwala transakcję?

  5. Zadeklaruj błąd składni w MYSQL Workbench