我想要做的是通过它们与一组特定参数的相似性从该表中检索记录.例如,给定“红色”,“美国”和“18-25”,最好的结果将是那些匹配所有三个的记录.这些将是100%匹配.
但是,我还想检索匹配两个参数(66%匹配)或任何一个参数(33%匹配)的任意组合的记录.此外,我希望能够定义额外的比较点(例如underwear_type,marital_status等).
这个问题有一个相对有效的解决方案吗?
我想要做的是通过它们与一组特定参数的相似性从该表中检索记录.例如,给定“红色”,“美国”和“18-25”,最好的结果将是那些匹配所有三个的记录.这些将是100%匹配.
但是,我还想检索匹配两个参数(66%匹配)或任何一个参数(33%匹配)的任意组合的记录.此外,我希望能够定义额外的比较点(例如underwear_type,marital_status等).
这个问题有一个相对有效的解决方案吗?
SELECT userId,SUM( (favourite_colour='Red'),(country='US'),(age_group='18-25') ) AS match_score FROM people WHERE match_score >= 2 ORDER BY match_score DESC
将为您提供完美的比赛,下一场3比2;很容易概括到更多的检查! – )