php – 根据一组可变的比较点检索MySQL记录

假设我有一个 MySQL表,人们.每条记录包含各种属性,包括favourite_colour,country和age_group.

我想要做的是通过它们与一组特定参数的相似性从该表中检索记录.例如,给定“红色”,“美国”和“18-25”,最好的结果将是那些匹配所有三个的记录.这些将是100%匹配.

但是,我还想检索匹配两个参数(66%匹配)或任何一个参数(33%匹配)的任意组合的记录.此外,我希望能够定义额外的比较点(例如underwear_type,marital_status等).

这个问题有一个相对有效的解决方案吗?

是的,您可以将每个比较(例如favourite_colour =’Red’& c)转换为值0(false)或1(true) – MysqL将隐式执行此操作,但为了一般性,您可能需要
CAST((favourite_colour =’Red’)AS INTEGER)& c;那么,你们所有这些,即,
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;很容易概括到更多的检查! – )

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...