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

MySQL GROUP BY/ORDER BY problem

Det er faktisk ikke rigtigt. Det vil returnere en tilfældig række. I praksis er dette ofte den første række i primær nøglerækkefølge, men der er ingen garanti. Andre databaser end MySQL tillader ikke denne praksis og vil give en fejl.

En måde at hente det højeste ID af ulæste meddelelser på er i hvert fald ved at deltage i meddelelsestabellen to gange. Den anden join søger kun efter ulæste beskeder. For eksempel:

SELECT  max(msg.ID) as MaxID
,       messages.from
,       max(unread.ID) as MaxUnreadID
,       users.userName
FROM    users
join    messages msg
on      users.ID = msg.from
        and messages.to = ?
left join    
        messages unread
on      users.ID = unread.from
        and messages.to = ?
        and unread.read = 0
GROUP BY
        users.ID
,       users.userName


  1. Aggregater og partitionering

  2. SUBDATE() Eksempler – MySQL

  3. Django kunne ikke finde MySQLdb python-modulet

  4. Netværksadapteren kunne ikke etablere forbindelsen, når den oprettede forbindelse til Oracle DB