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

Truy vấn MySQL để tìm hàng số tương tự nhất

Trong một lần cải tiến nhỏ về phương pháp của @ eggyal, tôi đã kết hợp số lượng các mục mà chúng tôi có thể so khớp với nhau.

SELECT   u2.user_id

-- join our user to their scores
FROM     (users u1 JOIN scores s1 USING (user_id))

-- and then join other users and their scores
    JOIN (users u2 JOIN scores s2 USING (user_id))
      ON s1.item_id  = s2.item_id
     AND u1.user_id != u2.user_id

-- filter for our user of interest
WHERE    u1.user_id = ?

-- group other users' scores together
GROUP BY u2.user_id

-- subtract the degree of difference in correlating scores from the number of correlating scores
ORDER BY (SUM(s1.item_id = s2.item_id) - 
  ( SUM(ABS(s2.score - s1.score) + ABS(u2.self - u1.self) ) ) ) DESC


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. chọn từ một bảng, đếm từ một bảng khác có id được liên kết

  2. Laravel / PHP:Sắp xếp theo thứ tự bảng chữ cái với các số theo thứ tự

  3. Sử dụng Java để sao lưu từ xa cơ sở dữ liệu MySQL

  4. Xác định độ dài tối đa được phép trong một cột trong mysql

  5. Sự khác biệt giữa utf8 và latin1