Mysql
 sql >> база данни >  >> RDS >> Mysql

Групиране по потребител и показване на най-новото в MYSQL не работи

Както е споменато в коментарите към отговора на Робин , този подход е ненадежден, тъй като MySQL не гарантира, че винаги ще връща най-новото състояние от всяка група. Вместо това трябва да присъедините вашата таблица с подзаявка, която избира най-новото състояние (въз основа на addedDate ).

SELECT   *
FROM     status
  NATURAL JOIN (
    SELECT   userID, MAX(addedDate) as addedDate
    FROM     status
    GROUP BY userID
  ) AS mostRecent
ORDER BY addedDate DESC
LIMIT    10

Имайте предвид, че ако потребителят има множество актуализации на състоянието с една и съща addedDate , сървърът ще върне всички тях (докато заявката на Робин ще върне неопределена); ако имате нужда от контрол върху такава ситуация, ще трябва да дефинирате как да определите коя такава актуализация на състоянието трябва да бъде избрана.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да намерите всички идентификатори на деца рекурсивно?

  2. Добавяне на данни към Cloud Firestore база данни

  3. Не може да се открие нулева стойност от JSON_EXTRACT

  4. Как да увелича MySQL връзките(max_connections)?

  5. MySQL 8 създаде нов потребител с парола, която не работи