Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

grup mySQL berdasarkan nama anggota

Saya pikir ini yang Anda cari.

SELECT messages.* 
  FROM 
  (SELECT MAX(lastseen) AS lastseen,IF ('Tom' = `from`,`to`,`from`) as otheruser FROM messages
    WHERE 'Tom' IN (`from`,`to`) GROUP BY otheruser
   )
AS latest INNER JOIN messages ON latest.lastseen = messages.lastseen
                             AND (('Tom' = messages.from AND latest.otheruser = messages.to)
                                 OR
                                 ('Tom' = messages.to AND latest.otheruser = messages.from))
ORDER BY messages.lastseen
DESC,`read`='no' limit 10

ganti saja 'Tom' dengan variabel Anda

Ini akan mengembalikan 10 pengguna terakhir yang mengirim pesan ke 'Tom' atau 'Tom'.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tidak dapat terhubung ke server MySQL lokal di docker-compose

  2. Entri duplikat untuk kunci 'PRIMARY'. Mengabaikan spasi untuk string

  3. Saran tentang Penataan Sistem Komentar

  4. Bagaimana saya bisa mengaktifkan log kueri lambat MySQL tanpa memulai ulang MySQL?

  5. Dapatkan id catatan yang terakhir dimasukkan di mybatis