根据指定规则书写权重。
例如:根据查出表后,再从表中,取出当前时间到前30天的数据,以某个字段进行降序排序。然后,从剩下的数据中,有后台权重和权重规则。后台权重和权重规则是分离的。有后台权重,那么会高于权重规则。
说一下,这是工作是遇到的一些问题。
一般来说要将这么多数据资料去理解透彻。并且保证不出错,估计是不可能的。那么建议书写一个简单的表,然后去进行实操,有这个demo那么就会很简单。
指定前30天数据
这个也是mysql的一个方法。不过有些怪异。不用担心 会利用即可。
WHERE DATEDIFF(日期字段,NOW() ) <=0 AND DATEDIFF(日期字段,NOW())>=-30
-30就是往前查30天。也就是指定前30天。注意前面的负号
排序
这里要说明权重规则一般都是一个分数。我们利用比例相加或者相乘就可以得到。
ORDER BY 权重 DESC, 权重规则 DESC;
创建临时表
DROP TABLE IF EXISTS `tmp_abc`;
CREATE TEMPORARY TABLE `tmp_abc` AS
SELECT 字段 FROM 表 WHERE 条件;
就是将内部从表中查出的字段作为临时表。
合并表数据 UNION
这里都是从同一张表中查的,后面的权重和权重规则查出来的,是整个表的所有数据,那么和前30天查出来的数据,会有重复的内容。解决办法是合并这两个临时表。
网友评论