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

MySQL GROUP BY / ORDER BY vấn đề

Điều đó không thực sự đúng. Nó sẽ trả về một hàng ngẫu nhiên. Trong thực tế, đây thường là hàng đầu tiên trong thứ tự khóa chính, nhưng không có gì đảm bảo. Các cơ sở dữ liệu khác với MySQL không cho phép thực hành này và sẽ gây ra lỗi.

Dù sao, một cách để truy xuất ID cao nhất của các tin nhắn chưa đọc là tham gia bảng tin nhắn hai lần. Tham gia thứ hai chỉ tìm kiếm các tin nhắn chưa đọc. Ví dụ:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tham số 'LIMIT' hoạt động như thế nào trong sql?

  2. cách lưu giá trị hộp kiểm vào cơ sở dữ liệu mysql bằng php

  3. Mã lỗi MySQL:1175 trong khi CẬP NHẬT (MySQL-Workbench so với bảng điều khiển)

  4. Bạn muốn đề xuất mẫu thiết kế phiên bản nào

  5. Sử dụng hợp lý các lớp trong các lớp khác trong php?