Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Nhóm mySQL theo tên thành viên

Tôi nghĩ đây là điều bạn đang theo đuổi.

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

chỉ cần thay thế 'Tom' bằng biến của bạn

Thao tác này sẽ trả về 10 người dùng mới nhất đã gửi tin nhắn cho 'Tom' hoặc 'Tom' được gửi tin nhắn tới.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không có ngoại lệ 'PDOException' với thông báo 'SQLSTATE [HY093]:Số tham số không hợp lệ'

  2. MySQL đếm các ngày liên tiếp cho chuỗi hiện tại

  3. Làm cách nào để giữ lịch sử cập nhật hồ sơ trong MySQL?

  4. Giải thích về khung khả dụng cao của MySQL - Phần I:Giới thiệu

  5. Hình ảnh hiển thị PHP BLOB từ MySQL