Giả sử tôi có bảng MySQL, people
. Mỗi bản ghi bao gồm nhiều thuộc tính, trong số này là favourite_colour
, country
và age_group
.Truy xuất bản ghi MySQL dựa trên tập hợp các điểm so sánh
Điều tôi muốn làm là truy xuất các bản ghi từ bảng này bằng sự giống nhau của chúng với một tập hợp các thông số cụ thể. Ví dụ: Ví dụ: "Đỏ", "Hoa Kỳ" và "18-25", kết quả tốt nhất sẽ là các bản ghi phù hợp với cả ba. Đây sẽ là 100% phù hợp.
Tuy nhiên, tôi cũng muốn truy xuất các bản ghi khớp với bất kỳ kết hợp nào của hai tham số (66% đối sánh) hoặc bất kỳ tham số nào (đối sánh 33%). Hơn nữa, tôi muốn có thể xác định các điểm so sánh bổ sung (ví dụ: underwear_type
, marital_status
, v.v.).
Có giải pháp tương đối hiệu quả nào cho vấn đề này không?
Điều này khá thông minh! –
Đây thực sự là một ý tưởng rất hay. Nó sẽ dễ dàng để thêm trọng lượng này quá bằng cách nhân một trong các kết quả. –
Đây thực sự là một giải pháp tuyệt vời. Một vài lưu ý/câu hỏi: từ những gì tôi có thể nói, SQL không cho phép các bí danh cột (ví dụ match_score) trong mệnh đề WHERE. Ngoài ra, tôi không nghĩ SUM() hoạt động như truy vấn của bạn sẽ gợi ý (nó không chấp nhận nhiều đối số); Tài liệu của MySQL cho biết SUM() chỉ là một hàm tổng hợp GROUP BY. Loại bỏ mệnh đề WHERE và thay thế tổng bằng các toán tử bổ sung đã làm cho hàm hoạt động như một sự quyến rũ. –