大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
根据你的需求,需要再详细一点,给一个具体的排序顺序:
创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的盐边网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
例如:首先根据什么
性别、年龄、学历、行业、体型,是这个顺序吗?
如果是这个顺序;
你在mysql查询的时候:
select * from member order by 【性别的字段】 desc, 【年龄的字段】 desc ,【行业】desc .....等等,就可以了;
1.首先,题主应该选一个相似度的计算维度,比如content字段,type字段等;
2.其次,题主考虑一下各个字段的权重,比如type字段必须相同,则让type字段使用typeWeight(例如赋值0.8)作为乘积的因子,而content字段本身是比较长的,所以需要计算出一个hash值,比如使用特定算法计算出一个hash值,然后把这个hash值按照16进制计算得到10进制数,再给一个权重contentWeight(例如0.2),另外再选取一个字段,比如description描述字段,再给一个权重descriptionWeight...
3.最后得到一个当前插入到表中的记录综合hash,typeWeight(contentHashcontentWeight+descriptionHash*descriptionWeight
+...),可能会涉及到大整数计算,不过PHP有BCMATH扩展可以使用,最终得到一个数值的综合hash值,保存到数据库的一个字段中,这个东西就可以理解为本条记录的特征值。
纯sql的话,应该实现不了,相似的这个应该还是PHP来处理的,排第三的都没有相似的内容了,也要显示。那就是所有的数据,然后再foreach来做对比判断,我觉得可以将字符串分为数组,然后对比两个数组的交集个数,再按交集的个数来排序