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

Sử dụng một mảng trong truy vấn SQL

Đây là một bố cục chung cho bạn, hãy tạo ba bảng như bạn đã đề cập, tôi đã phác thảo bên dưới chỉ để làm ví dụ

[BẢNG BIỂU]

  • người dùng
  • người theo dõi
  • bài đăng

Trong bảng người dùng, bạn nên có ít nhất các cột như userid (giá trị tăng tự động / khóa chính).

Bảng người theo dõi phải có một cái gì đó giống như userid sẽ khớp với userid bảng người dùng, một cột followid cũng sẽ có id # cho người theo dõi từ bảng người dùng.

Sau đó, đối với bảng bài đăng của bạn, bạn cũng muốn có userid để khi mỗi bài đăng được tạo, nó sẽ có id từ bảng người dùng.

Sau đó, bạn sẽ cần phải làm một cái gì đó như:

SELECT p.*
FROM posts AS p
WHERE p.userid IN (SELECT followid FROM followers WHERE userid = ###)
ORDER BY p.date DESC

Bây giờ nó thực sự phụ thuộc vào cách bạn lấy id người dùng để tìm ra điều này. Nếu bạn chuyển id người dùng bằng một phiên sau khi họ đăng nhập tương tự như Facebook, thì bạn có thể thay đổi userid =### thành một cái gì đó như userid =". $ _ SESSION ['userid']." Nhưng một lần nữa, nó thực sự phụ thuộc vào cách bạn chuyển id người dùng nhưng những điều trên ít nhất sẽ giúp bạn phần nào bắt đầu.

Đảm bảo đặt các chỉ mục trên userid, các cột tiếp theo để khi bảng trở nên lớn hơn, nó sẽ thực hiện các phép nối một cách nhanh chóng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:CAST không yêu cầu dấu cách trước dấu ngoặc đơn?

  2. Hiệu suất CASE trong MySQL?

  3. Bản sao lưu quản trị viên MySQL:Chế độ tương thích, Điều này chính xác đang làm gì?

  4. Phần bù chuỗi không hợp lệ 'Data_length' / 'Index_length' cho mọi hàng của bảng

  5. Xung đột loại MySqlParameter khi sử dụng Entity Framework với Pomelo