我创建了一个房地产网站,希望按照列表的最后更新时间和完整性进行排序。因此,我一直在尝试找出如何通过mysql中的字段(completion_score)结合最近更新的列表来进行排序。完成得分将在100分制上进行评估,0为不好,100为完全完成。当添加和更新房源时,将计算房源的完整度并保存在mysql数据库中。我猜想我必须以某种方式将日期和完整度得分相结合,以便进行总体排序,但我不确定如何在一个SELECT语句中实现这一点。
目前我正在使用以下代码(显然没有考虑完整度得分):
我在考虑,如果任务在上周完成,我会给完成得分增加30分;如果在上个月完成,我会给完成得分增加20分;如果在过去三个月内完成,我会给完成得分增加10分。然后,我可以按照这个更新后的完成得分对任务进行排序。问题是,如何让它每天更改以调整得分。
根据马克的建议,我添加了以下代码:
我遇到了以下解析错误:语法错误,意外的T_IF在/home/...中。
目前我正在使用以下代码(显然没有考虑完整度得分):
ORDER BY ".$wpdb->prefix."fsrep_listings.listing_featured DESC, ".$wpdb->prefix."fsrep_listings.listing_last_updated DESC
我在考虑,如果任务在上周完成,我会给完成得分增加30分;如果在上个月完成,我会给完成得分增加20分;如果在过去三个月内完成,我会给完成得分增加10分。然后,我可以按照这个更新后的完成得分对任务进行排序。问题是,如何让它每天更改以调整得分。
根据马克的建议,我添加了以下代码:
ORDER BY $wpdb->prefix.'fsrep_listings.listing_score' + if($wpdb->prefix.'fsrep_listings.listing_last_updated' > NOW()-INTERVAL 1 WEEK,30,if($wpdb->prefix.'fsrep_listings.listing_last_updated' > NOW()-INTERVAL 1 MONTH,20,if($wpdb->prefix.'fsrep_listings.listing_last_updated' > NOW()-INTERVAL 3 MONTHS,10,0)))' DESC';
我遇到了以下解析错误:语法错误,意外的T_IF在/home/...中。